J'ai un type de message personnalisé appelé films et je dois rapidement changer de modèle pour afficher le cpt de films au début via un lien. Comment cela peut-il être fait?
Fichiers que j'ai: single-movies.php template-movieslanding.php template-movieswholesale.php
Fonctionnalité: Un groupe de liens est affiché sur chacun des trois modèles, comme illustré ci-dessous. Ces liens ne sont affichés que pour le personnel connecté. Le personnel n'est pas du tout technique et a besoin d'une solution simpliste.
Vues: Vue d'ensemble | Page d'atterrissage | De gros
Lorsque chaque lien est cliqué, je dois passer à ce modèle. Tous les modèles utilisent le même type de publication personnalisé.
Merci! ~ Matt
vous pouvez le faire comme ça:
//add movies_view to query vars
add_filter('query_vars', 'my_query_vars');
function my_query_vars($vars) {
// add movies_view to the valid list of variables
$new_vars = array('movies_view');
$vars = $new_vars + $vars;
return $vars;
}
puis ajoutez une redirection de modèle basée sur cette requête_var:
add_action("template_redirect", 'my_template_redirect');
// Template selection
function my_template_redirect()
{
global $wp;
global $wp_query;
if ($wp->query_vars["post_type"] == "movies")
{
// Let's look for the property.php template file in the current theme
if (array_key_exists('movies_view', $wp->query_vars) && $wp->query_vars['movies_view'] == 'overview'){
include(TEMPLATEPATH . '/single-movies.php');
die();
}
if (array_key_exists('movies_view', $wp->query_vars) && $wp->query_vars['movies_view'] == 'landing'){
include(TEMPLATEPATH . '/template-movieslanding.php');
die();
}
if (array_key_exists('movies_view', $wp->query_vars) && $wp->query_vars['movies_view'] == 'wholesale'){
include(TEMPLATEPATH . '/template-movieswholesale.php');
die();
}
}
}
puis ajoutez cette var à vos liens
J'espère que cela t'aides