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
featuredsur 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.phpqu’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 $tagor $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.phpmodè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_postsfiltre - 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-contentla fonctionnalité - avec la configuration définie
featured_content_filtercomme celle ci-dessus - à quelle
Featured_Contentclasse 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_postsfiltre et renvoyer conditionnellement différents ensembles de publications selon vos besoins.

0 commentaire