web-dev-qa-db-fra.com

Comment relier la page de résultats de recherche à une page d'arrière-plan?

Sur mon site, les éditeurs peuvent télécharger des images "bannières" sur chaque page du site. Cependant, je ne parviens pas à trouver comment lier la page de résultats de recherche à une page d'arrière-plan (c'est-à-dire la page qui apparaît à example.com/?s=searchterm).

Quelqu'un a-t-il des conseils pour créer une page dans le back-end "lier" vers la page de résultats de recherche afin qu'un utilisateur puisse télécharger une bannière sur une page de l'administrateur principal et l'afficher sur la page de résultats de recherche?

J'ai fait quelques recherches sur Google et ai trouvé cette page sur le codex de Wordpress: http://codex.wordpress.org/Creating_a_Search_Page mais les méthodes décrites ne le sont pas semblent fonctionner.

Toute aide serait appréciée.

1
John

Donc, si je comprends bien, vous voulez utiliser une page spécifique comme page de résultats de recherche.

C'est un peu délicat, car lorsque vous êtes sur une page de recherche, la requête actuelle est celle créée par le terme de recherche dans l'URL, mais pour obtenir une page spécifique, vous avez besoin d'une requête pour cette page.

Donc, vous avez besoin de 2 requêtes. Ce n’est pas idéal en termes de performances, et en utilisant probablement un moyen différent pour lier une bannière à des pages, vous pouvez résoudre ce problème de manière plus efficace.

Cependant, répondons à votre question.

Lorsque vous êtes dans la page de résultats de recherche, WordPress utilise le modèle search.php pour afficher les résultats. Voir Hiérarchie des modèles WordPress .

Si search.php n'y figure pas, votre thème utilise index.php pour afficher les résultats de la recherche. Dans ce cas, dupliquez le index.php en renommant la copie search.php: vous disposez ainsi d'un modèle spécifique pour les résultats de la recherche.

Si vous utilisez un thème développé par un tiers, il est judicieux de tout faire dans un thème enfant . Ainsi, lorsque vous mettez à jour le thème, ne pas perdre les changements.

Vous ne dites pas comment vous reliez une bannière à des pages, je suppose que vous chargez des bannières en tant qu'images en vedette; si vous le faites différemment (par exemple, en utilisant des champs personnalisés), modifiez le code en conséquence.

Ouvrez votre search.php et où vous souhaitez afficher l'utilisation de la bannière:

global $post;
$post = get_page_by_path('search');
setup_postdata($post);
// now the page with slug 'search' is treated as it was the current page
// so retrieve the banner just like you do in normal page
// I'll use page featured image
the_post_thumbnail();
wp_reset_postdata();

Maintenant, vous devez aller dans votre tableau de bord, créer une page et lui attribuer le slug 'search'. Ce slug est attribué automatiquement si vous utilisez "Recherche" comme titre.

Enfin, ajoutez la bannière à cette page.

0
gmazzap