web-dev-qa-db-fra.com

Même pied de page sur tous les blogs multisites

Il existe un moyen d'utiliser le pied de page du site principal (blog id = 1) sur tous les sites du réseau. Je veux avoir le même pied de page dans tout le réseau. Sur le site principal, j'ai un thème et les sites enfants créés par les utilisateurs ont un autre thème.

En gros, je veux utiliser le même pied de page sur les deux thèmes, mais gérer tous les widgets à partir du site principal.

Il est possible de le faire en utilisant switch_to_blog ou quelque chose de similaire.

UPDATE: j'ai essayé mais pas de chance:

<?php
    global $switched;
    switch_to_blog(1);

     get_footer(); 

restore_current_blog();
?>
2
chifliiiii

Tout d’abord, l’utilisation du même fichier footer.php pour plusieurs thèmes serait problématique, car différents thèmes utilisent différents éléments qui doivent être fermés dans ce fichier.

Un meilleur moyen serait de créer une fonction personnalisée que vous appelez dans chaque fichier footer.php. Une telle fonction serait mieux placée dans un fichier dans wp-content/mu-plugins afin qu’elle soit chargée en premier pour chaque site:

function my_custom_footer() {
    echo 'Copyright &copy ' . date('Y') .' ACME Studios Inc.';
}

Et appelez ensuite la fonction dans le fichier footer.php du thème:

my_custom_footer();

Une autre méthode au lieu d’appeler la même fonction dans chaque thème serait d’attacher l’action wp_footer (qui devrait être appelée dans chaque thème):

function my_custom_footer() {
    echo 'Copyright &copy ' . date('Y') .' ACME Studios Inc.';
}
add_action( 'wp_footer', 'my_custom_footer' );

Si vous déposez ce dernier extrait dans un fichier dans wp_content/mu-plugins, le texte apparaîtra dans le pied de page de chaque thème! Si vous souhaitez positionner ou styliser manuellement le texte, vous pouvez le faire en localisant l'appel à wp_footer() dans le fichier footer.php d'un thème et en l'enveloppant dans des éléments HTML.

Si vous préférez laisser wp_footer() pour le contenu HTML masqué, tel que les scripts de pied de page, vous pouvez appeler votre propre action dans footer.php et y accrocher où bon vous semble:

Dans footer.php:

do_action( 'wpse_footer_content' );

Dans un plugin mu:

add_action( 'wpse_footer_content', function () { ?>

    content goes here

<?php } );
1
shea

Oui. Utilisez simplement switch_to_blog et restore_current_blog à l'une des extrémités du pied de page, puis codez-le comme si vous étiez sur votre blog principal entre ces fonctions.

0
Nick Budden