J'ai besoin d'exécuter une fonction lorsqu'un article ou une page particulière est chargée. Existe-t-il un crochet qui me permet de vérifier si une publication est affichée pendant le chargement de la page?
J'ai besoin d'exécuter une fonction lorsqu'un article ou une page particulière est chargée. Existe-t-il un crochet qui me permet de vérifier si une publication est affichée pendant le chargement de la page?
Réponses:
Vous pouvez utiliser le wpcrochet et vérifier l' global $wp_queryobjet ou n'importe quel conditionnel.
add_action( 'wp', 'wpse69369_special_thingy' );
function wpse69369_special_thingy()
{
if (
'special_cpt' === get_post_type()
AND is_singular()
)
return print "Yo World!";
return printf(
'<p>Nothing to see here! Check the object!<br /></p><pre>%s</pre>',
var_export( $GLOBALS['wp_query'], true )
);
}
Voir: wpdans codex.wordpress.org et wpdans developer.wordpress.org
after_setup_themeet setup_theme, il n'est donc accessible que pour les plugins B) à l'intérieur WP :: main(), qui est appelé depuis wp-settings.php.
wpcrochet ne tire-t-il pas après le after_setup_themecrochet et juste avant de le template_redirectrendre wpaccessible par thèmes ainsi que par plugins? (juste pour clarifier?)
Utilisez template_redirectqui est le crochet d'action qui se déclenche avant le rendu du modèle;
add_action('template_redirect', 'hooker');
function hooker(){
//I load just before selecting and rendering the template to screen
}
wpcourt après le after_theme_setupcrochet, donc ce n'est pas seulement accessible par les plugins, ce qui le rend sûr à utiliser dans les thèmes.
wpcourt après after_theme_setup. Mais j'en ai besoin pour mon plugin. Ainsi wp, les template_redirectdeux fonctionnent bien pour moi. J'aimerais pouvoir accepter deux réponses ici! :)
J'ai assez souvent utilisé ce qui suit pour charger des méta-boîtes personnalisées sur les pages (plutôt que des articles personnalisés).
add_action('admin_init','how_we_do_it_meta');
function how_we_do_it_meta() {
if ( $_SERVER['SCRIPT_NAME'] == '/wp-admin/post.php' ) {
$post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'];
$template_file = get_post_meta($post_id,'_wp_page_template',TRUE);
if ($template_file == 'page-how-we-do-it.php') {
add_meta_box('how_we_do_it_who-meta', 'Who we work with...', 'how_we_do_it_who', 'page', 'normal', 'high');
add_action('save_post', 'save_how_we_do_it_meta');
}
}
}
to add_action('init', // etc)cela fonctionnera sur le chargement de la page plutôt que seulement dans la section admin.
! is_admin()intérieur, car le initcrochet fonctionne des deux côtés.