Comment savoir si un fichier template wordpress a été accédé en externe ou en interne via une boucle personnalisée ?

Publié par Jean-Michel le

existe-t-il un moyen de savoir si un fichier de modèle wordpress a été consulté en externe ou via une fonction wordpress ?

J’ai un onepager en développement qui se compose de plusieurs pages singulières qui sont assemblées en une seule page via un front-page.php central.

Je voudrais charger des éléments supplémentaires dans le cas où l’une de ces pages singulières serait accessible de l’extérieur (c’est-à-dire pas via mon modèle onepager).

dans mon cas, la page d’accueil exécute une boucle personnalisée qui charge tous les éléments qui existent dans le menu principal via

$template_part = get_post_meta($menu_item->object_id, '_wp_page_template', true);
include(locate_template($template_part));

chacune de ces pages a un modèle par défaut personnalisé.

donc si l’une de ces pages est accessible directement (c’est-à-dire pas via mon page principale front-page.php), la page saute. existe-t-il un moyen de savoir si la page/le modèle a été appelé via ma boucle personnalisée ou si le modèle a été chargé directement en accédant à la sous-page en externe ?

un grand merci pour toute aide éventuelle !

Solution n°1 trouvée

d’accord. donc si quelqu’un d’autre cherche ceci: j’ai résolu le problème en définissant et en passant une variable de front-page.php aux sous-modèles, où je vérifie la variable – si elle est définie, je suppose que le modèle a été appelé depuis le onepager. sinon, je redirige vers la page principale. s’il y a une meilleure solution à cela, j’aimerais toujours le savoir!

les moyens de transmettre des variables à un modèle peuvent être trouvés ici : https://www.wpastronaut.com/blog/passing-data-to-wordpress-template-parts/

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

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