web-dev-qa-db-fra.com

Comment changer rapidement de template singulier de type post personnalisé?

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

3
torinagrippa

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

  • Pour la vue d'ensemble, ajoutez? Movies_view = aperçu à l'URL
  • Pour la page de destination, ajoutez? Movies_view = atterrir à l'URL
  • Pour Wholesale, ajoutez? Movies_view = Wholesale à l'URL

J'espère que cela t'aides

5
Bainternet