WordPress: Créer un wp_redirect vers une page archive d'un post type
Facile

Dans ce tutoriel, nous allons créer une redirection qui va forcer une template page Post Type a utiliser une page WordPress. On va pour ça utiliser le template_redirect.

La première bonne façon de faire, c’est de créer votre template page Post Type. Par exemple si vous construisez un type de post du nom de equipe, vous devrez donc, insérer dans votre thème WordPress une page du nom de tpl-equipe.php.

Dans la fonction, on dit simplement la condition suivante, s’il trouve dans la requête hiérarchique une page template du post type, utilise la page votre-equipe (Donc l’url doit être www.votredomaine.com/votre-equipe/), wue vous aurez créer dans les pages WordPress et attacher la page au bon template modèle.

Ce qui est très intéressant dans les pages templates du Post Type, c’est que vous pouvez les différencier de l’index et de l’archive.php, ce qui permet de customiser la présentation des résultats en allant chercher dans le template un loop personnalisé.

Votre page template Post Type (Un exemple) :

<?php
/**
* Template Name: Equipe
* @package WordPress
* @subpackage Nom du Theme
* @since Nom du Theme 1.0
*/
?>
<?php get_header(); ?>
<!--Page start-->
<div class="service_in">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="service_txt">
<div class="col-md-9 col-sm-6 col-xs-12">
<h4></h4>
</div>
<div class="row"></div>
</div>
</div>
</div>
</div>
</div>
<!--Page end--> 

<?php include( get_template_directory() . '/templates-part/part-blog.php'); ?>
<?php get_footer(); ?>

Créer un wp_redirect d'une page archive par template page :

<?php
function votretheme_redirect_cpt_archive() {
    if( is_post_type_archive( 'equipe' ) ) {
        wp_redirect( home_url( 'votre-equipe' ), 301 );
        exit();
    }
}
add_action( 'template_redirect', 'votretheme_redirect_cpt_archive' );
 ?>

Par contre si vous souhaitez ne pas créer de page template et ne pas refaire de redirection, créer simplement une archive page du nom de votre Post Type comme par exemple equipe ce qui va donner un fichier php dans votre thème archive-equipe.php.

Pour le cas de votre page archive, vous n’avez pas besoin de faire de redirection ni de créer une page template puisqu’il ira chercher la hiérarchie et dans le cas-ci il ira questionner la page du thème archive-equipe.php.

Vous pouvez donc faire les mêmes conditions pour d’autres archives de type personnalisé. Si vous n’utilisez pas de page archive Post Type, WordPress ira questionner naturellement archive.php et son loop.

NB : Faire une sauvegarde de votre thème, de votre fichier et/ou votre base de données avant d’ajouter ces fonctions tutoriels.

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>