web-dev-qa-db-fra.com

Activer la petite condition php au pied de page sur le modèle de page

Je voulais exécuter une condition php de base à mon pied de page si correctement activé à certaine page.

Le code est:

if ( $photoSwipe == 1 ) {
  get_template_part( _ps );
}

Donc, si je vais activer ce plugin, je peux déclencher le $photoSwipe = 1 sur ma certaine page qui activera la get_template_part(_ps) dans ma zone de pied de page.

2
iMarkDesigns

Ce serait un moyen viable de le faire à partir d'un plugin, mais il semblerait que cela aurait plus de sens dans un fichier de modèle.

S'il s'agit d'une option universelle, vous pouvez créer une option via une page de paramètres personnalisés ou tout simplement en initialisant l'activation du plug-in dans le hook d'activation (s'il s'agit d'une valeur statique):

function wpse_photoswipe_activate_plugin() {
    $page_id = 123; // This could be an ID, or if you wanted, a template name
    add_option( 'wpse_activate_photoswipe', $page_id );
}
register_activation_hook( __FILE__, 'wpse_photoswipe_activate_plugin' );

function wpse_photoswipe_deactivate_plugin() {
    delete_option( 'wpse_activate_photoswipe' );
}
register_deactivation_hook( __FILE__, 'wpse_photoswipe_deactivate_plugin' );

Ensuite, dans votre modèle de pied de page, vous pouvez utiliser quelque chose comme:

global $post;
if ( get_option( 'wpse_activate_photoswipe' ) === $post->ID ) {
    get_template_part( _ps );
}

Toutefois, si vous souhaitez connaître mon opinion sur la manière la plus simple de procéder, car vous semblez déjà éditer des fichiers de modèle, vous devez simplement mettre à jour votre code existant pour:

if ( is_page( $page_id ) ) {
    get_template_part( _ps );
}

Il y a encore plus de façons de faire ce que vous suggérez, mais étant donné les informations que vous avez fournies (crochets de thème existants ou wp_footer, par exemple), cela devrait vous guider dans la bonne direction.

2
brianjohnhanna