web-dev-qa-db-fra.com

Accrocher une fonction à la barre latérale?

Je cherche un moyen d'ajouter du contenu en haut de la barre latérale lorsqu'il est chargé.

J'ai essayé de raccrocher à l'action get_sidebar en tant que référencé ici , mais il semble remplacer l'appel de la barre latérale et charger ma fonction à la place? Y a-t-il une meilleure solution pour ce faire en plus de la création de widgets? J'aimerais éviter cela si possible, mais je ne suis pas totalement contre l'idée, un crochet serait mieux :)

Voici à quoi ressemble mon crochet: add_action('get_sidebar', 'social_links');

Remarque: la fonction appelée ne fait que cracher une liste de liens vers des réseaux sociaux, rien de trop compliqué ...

(Exécution locale de la dernière version (3.1) sur un serveur MAMP)

4
Cole

Charge en bas de la barre latérale

Dans la plupart des barres latérales, vous trouverez l'appel au crochet wp_meta() action, qui vous permet de vous accrocher au bas (principalement en bas) d'une barre latérale.

Chargez en haut de votre barre latérale

La fonction get_sidebar( $name ) appelle la barre latérale de votre modèle (cela permet d’avoir différentes barres latérales). Si vous voulez ajouter des choses à par exemple. En haut de votre barre latérale, vous êtes libre d’utiliser le crochet d’action interne situé en haut de votre barre latérale, juste avant que la barre latérale ne soit chargée. Vous pouvez ensuite raccrocher tout à cet appel.

Exemple:

function add_before_my_siderbar( $name ) 
{
    echo "Loaded on top of the {$name}-sidebar";

    // Example that uses the $name of the sidebar as switch/trigger
    'main' === $name AND print "I'm picky and only echo for special sidebars!";
}
add_action( 'get_sidebar', 'add_before_my_siderbar' );

Notes sur les thèmes

Le get_sidebar- hook est au-dessus de la fonction get_sidebar() et déclenche before le fichier de la barre latérale est inclus. Cela signifie que vous devez utiliser ce crochet pour ajouter du contenu avant et wp_meta() pour ajouter quelque chose after la barre latérale. Si un thème utilise wp_meta() antérieur à la fin du modèle de la barre latérale, il ne le fait pas correctement.

3
kaiser

get_sidebar hook est appelé sur la fonction qui récupère le fichier de modèle de la barre latérale, ce qui n'est pas la bonne solution.

si vous n'êtes pas prêt à créer un widget, vous pouvez convertir votre fonction en un shortcode et l'utiliser dans le widget de texte intégré.

Comment? simple, vous dites que votre fonction s'appelle social_links puis ajoutez:

add_shortcode('SL', 'social_links'); 
// and to make sure Wordpress calls shortcode in sidebars
add_filter('widget_text', 'do_shortcode');

Utilisation? encore une fois simple, ajoutez un widget texte et mettez-y [SL].

Assurez-vous simplement que votre fonction renvoie la sortie au lieu de la répercuter.

2
Bainternet

Au lieu de revenir sur wp_metahook, reprenez l'exemple de résultat:

add_action('wp_meta','my_function')

function my_function(){
   //no return 'hello';
   //try this and it will shows at the top of the sidebar
   echo 'hello';
}

Voir: wp_meta hook sur le Codex

0
jepser