Comment changer le contenu présenté en une balise différente dans WordPress Twenty Fourteen ?
Twenty Fourteen : personnaliser les articles « en vedette » selon le modèle de page 🏷️
- 1· Problème — Le thème affiche les articles avec la balise
featured
sur la page d’accueil. Vous souhaitez changer la balise selon le modèle de page utilisé. - 2· Solution — Intercepter la récupération des articles en vedette via le filtre
twentyfourteen_get_featured_posts
. - 3· Exemple de code — à ajouter dans
functions.php
:
add_filter( 'twentyfourteen_get_featured_posts', 'lw_custom_featured_posts' );
function lw_custom_featured_posts( $posts ) {
// Identifier la page affichée
if ( is_page_template( 'template-design.php' ) ) {
$tag = 'design';
} elseif ( is_page_template( 'template-develop.php' ) ) {
$tag = 'develop';
} else {
$tag = 'featured';
}
// Récupérer les derniers articles avec ce tag
$query = new WP_Query( array(
'tag' => $tag,
'posts_per_page' => 6,
'no_found_rows' => true,
) );
return $query->have_posts() ? $query->posts : array();
}
- 4· Astuce — Créez un modèle de page différent (ex :
template-design.php
) pour chaque type de contenu en vedette souhaité. - 5· Résultat — Chaque page utilise automatiquement un tag différent pour afficher des articles en vedette personnalisés.
➡️ En utilisant le filtre twentyfourteen_get_featured_posts
, vous avez un contrôle total sur la source des articles en vedette par modèle de page.
Dans le thème vingt-quatorze, nous aimerions savoir comment modifier la balise de contenu des fonctionnalités. Actuellement, il est défini comme featured
.
Maintenant, nous aimerions savoir comment coder cela pour différents modèles de page.
Nous remarquons page.php
qu’il y a un morceau de code appelant la partie template featured-content
.
<?php
if ( is_front_page() && twentyfourteen_has_featured_posts() ) {
// Include the featured content template.
get_template_part( 'featured-content' );
}
?>
D’après notre compréhension, cela appelle le fichier featured-content.php
. Dans ce fichier, existe-t-il un moyen de décider de la balise. Nous imaginons que vous pouvez le faire en utilisant une instruction if et la variable $tag
or $term
à l’intérieur d’un tableau. Mais nous ne sommes pas tout à fait sûrs.
Notre idée est de créer trois pages sur notre site, chacune utilisant une balise différente pour afficher différents messages dans la section de contenu en vedette.
Cela peut-il être fait et quelqu’un peut-il nous fournir le code ou la logique pour le faire?
Merci d’avance! l’équipe LWdesign
Solution n°1 trouvée
Si vous souhaitez uniquement modifier la balise sur les modèles par défaut, vous pouvez également le faire dans le tableau de bord. 🙂
http://codex.wordpress.org/Twenty_Fourteen
Solution n°2 trouvée
Les détails de mise en uvre interne de cette fonctionnalité sont d’une pertinence douteuse.
- Si vous jetez un oeil à ce
featured-content.php
modèle, vous verrez - qu’il reçoit des messages de
twentyfourteen_get_featured_posts()
cependant - la seule chose que la fonction a est le
twentyfourteen_get_featured_posts
filtre - d’un coup d’il rapide sur lequel, d’une manière particulière, rien ne devient réellement accro
- parce que
twentyfourteen_setup()
déclarefeatured-content
la fonctionnalité - avec la configuration définie
featured_content_filter
comme celle ci-dessus - à quelle
Featured_Content
classe accroche saget_featured_posts()
méthode - qui s’enfouit plus loin dans la
get_featured_posts_ids()
méthode - qui calcule, met en cache et renvoie ces identifiants
Il y a donc… quelques points sur lesquels vous pouvez travailler avec… ça . 🙂
D’un point de vue pratique, vous voudriez probablement vous connecter au twentyfourteen_get_featured_posts
filtre et renvoyer conditionnellement différents ensembles de publications selon vos besoins.
0 commentaire