web-dev-qa-db-fra.com

Comment insérer un texte dans toutes les pages et les publications avant ou après des endroits spécifiques?

J'ai ce code simple ci-dessous:

function func1() {
echo "this is amazing";
}

add_action('reko_hook','func1');

Maintenant, je sais que je pourrais utiliser reko_hook (); soit à l'intérieur index.php ou page.php où je veux, mais je me demandais s'il y avait plus de hooks prédéfinis comme ' init '.

Par exemple, je pourrais faire

add_action('init','func1');

mais cela fera écho c'est étonnant avant l'en-tête,

La question est de savoir s'il existe d'autres points d'ancrage prédéfinis pour spécifier l'emplacement de la sortie de la fonction , c'est étonnant être placé:

  1. Après l'en-tête, avant le titre de la page/publication.

  2. Après l'en-tête, après le titre de la page/publication.

  3. Avant le pied de page.

  4. Après le pied de page.

Je vous remercie.

1
eawedat

Vous pouvez ajouter avant ou après le contenu de la même manière. J'utilise ce code:

function rt_before_after($content) {
    $beforecontent = 'This goes before the content.';
    $aftercontent = 'And this will come after.';
    $fullcontent = $beforecontent . $content . $aftercontent;

    return $fullcontent;
}
add_filter('the_content', 'rt_before_after');

Vous pouvez l'utiliser de la même manière avec the_title ,.

Le reko_hook () que vous avez probablement fourni avec votre thème ou un autre plugin.

1
rudtek

Ce n'est pas si simple de répondre. Afin de générer un contenu quelque part dans un thème WordPress, il doit y avoir un point d'ancrage, une fonction, etc. à cet endroit particulier.

Par exemple, si vous souhaitez ajouter une chaîne au titre, vous pouvez l’accrocher au titre à l’aide du crochet suivant:

add_filter( 'the_title', 'myFunction');

Mais vous ne pouvez pas simplement ajouter une chaîne entre deux éléments DIV qui ont une structure comme ci-dessous:

<div class="div1"> <div class="div2"> </div> </div>

Si vous voulez faire quelque chose comme cela, vous devez passer par PHP fonctions telles que preg_replace() et un tas d'autres tâches pour trouver la partie que vous souhaitez modifier, ce qui n'est pas toujours la meilleure approche.

Donc, pour faire écho à votre contenu avant/après le titre, vous pouvez utiliser le filtre que je vous ai fourni.

Pour ajouter quelque chose au pied de page, vous pouvez définir une priorité pour votre crochet. Notez que vous ne pouvez pas sortir quelque chose après le crochet de pied de page, car il n'y a pas de crochet après, sauf si vous définissez votre propre fonction ou votre crochet personnalisé à cette fin.

Vous pouvez donc utiliser le code suivant pour générer votre contenu après chaque action déclenchée:

add_action( 'wp_footer', 'your_function', 999 );

et changez la priorité de 999 à 1, afin de l'inverser.

1
Jack Johansson

Doit-il avoir un style différent de celui des éléments auxquels le texte est ajouté? Sinon, cela pourrait probablement être résolu avec quelques CSS simples en utilisant les sélecteurs: before et: after pour ajouter du contenu à n'importe quel élément sélectionné.

<!DOCTYPE html>
<html>
<head>
<style>
header:before , h1:before, footer:before
{content: "this is amazing ";}

header:after , h1:after, footer:after
{content: " this is amazing";}
</style>
</head>
<body>
<header>
<h1>My Header</h1>
</header>
<p>Your awesome page content</p>
<footer>
<b>Note:</b> For the content property to work in IE8, a DOCTYPE must be declared.
</footer>
</body>
</html>
1
Andrew Edwards