Je m'efforce de comprendre do_action mais je ne comprends pas. J'étudiais le thème Blane. Et ils ont ce code dans sidebar.php
<div id="secondary" class="widget-area col-md-3" role="complementary">
<?php do_action( 'before_sidebar' ); ?>
<?php if ( ! dynamic_sidebar( 'sidebar-1' ) ) : ?>
<aside id="search" class="widget widget_search">
<?php get_search_form(); ?>
</aside>
<aside id="archives" class="widget">
<h1 class="widget-title"><?php _e( 'Archives', 'blain' ); ?></h1>
<ul>
<?php wp_get_archives( array( 'type' => 'monthly' ) ); ?>
</ul>
</aside>
<aside id="meta" class="widget">
<h1 class="widget-title"><?php _e( 'Meta', 'blain' ); ?></h1>
<ul>
<?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
<?php wp_meta(); ?>
</ul>
</aside>
<?php endif; // end sidebar widget area ?>
</div><!-- #secondary -->
Mais je ne comprends pas quelle est la deuxième ligne que je fais <?php do_action( 'before_sidebar' ); ?>
. Quand je supprime encore cette ligne, le résultat est identique.
Quelqu'un peut-il s'il vous plaît expliquer avec un exemple.
Si vous associez certaines fonctions à l'action before_sidebar
, elles seront exécutées dans votre code. Votre action est maintenant probablement sans aucune fonction accrochée, donc elle ne renvoie rien.
Exemple:
<?php
add_action( 'before_sidebar', function() {
echo 'Try me!';
});
add_action( 'before_sidebar', function() {
echo 'Yep. ';
}, 1);
// this should output "Yep. Try me!"
<?php do_action( 'before_sidebar' ); ?>
Le troisième argument est une priorité. Dans mon exemple, j'ai défini la priorité sur 1
pour la deuxième fonction et celle-ci sera exécutée à la première place.
Pour plus d'informations, consultez WP Codex do_action , et add_action .