Je cherche quels paramètres sont passés à ma fonction de filtre. Où puis-je trouver de telles informations dans le codex?
http://codex.wordpress.org/Plugin_API/Filter_Reference/the_content n'a pas fourni beaucoup d'informations
Je voulais savoir si le post est un enfant d'un autre
Je ne pense pas que des paramètres supplémentaires aient été transmis à the_content
, mais des variables globales telles que $ post sont accessibles.
Donc, quelque chose comme ceci fonctionnerait:
add_filter( 'the_content', 'check_for_post_parent' );
function check_for_post_parent($content) {
global $post;
if ($parent_id == $post->post_parent) {
//do what you want to $content here,
//now that you know $parent_id
//...
}
return $content;
}
Dans wp-includes/post-template.php
, vous trouverez l’endroit où les filtres sont appliqués:
/**
* Display the post content.
*
* @since 0.71
*
* @param string $more_link_text Optional. Content for when there is more text.
* @param string $stripteaser Optional. Teaser content before the more text.
*/
function the_content($more_link_text = null, $stripteaser = 0) {
$content = get_the_content($more_link_text, $stripteaser);
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;
}
Le seul paramètre est le texte du contenu.
Mais vous pouvez toujours utiliser la variable globale $ post pour obtenir plus d'informations sur la publication actuellement utilisée. Essayez l’extrait suivant dans le fichier functions.php de votre thème:
/*
* Priority 100 to let other filters do their work first.
*/
add_filter( 'the_content', 'debug_post_info', 100 );
/**
* Print information about the current post.
*
* @param string $content
* @return string
*/
function debug_post_info( $content )
{
return $content . '<hr><pre>' . var_export( $GLOBALS['post'], TRUE ) . '</pre>';
}
Sur une page enfant, vous obtenez des données intéressantes:
stdClass::__set_state(array(
'ID' => 2168,
'post_author' => '2',
'post_date' => '2007-09-04 09:52:18',
'post_date_gmt' => '2007-09-03 23:52:18',
'post_content' => 'This page has a parent.',
'post_title' => 'Child page 2',
'post_excerpt' => '',
'post_status' => 'publish',
'comment_status' => 'open',
'ping_status' => 'open',
'post_password' => '',
'post_name' => 'child-page-2',
'to_ping' => '',
'pinged' => '',
'post_modified' => '2007-09-04 09:52:18',
'post_modified_gmt' => '2007-09-03 23:52:18',
'post_content_filtered' => '',
'post_parent' => 2167,
'guid' => 'http://wpthemetestdata.wordpress.com/parent-page/child-page-1/child-page-2/',
'menu_order' => 0,
'post_type' => 'page',
'post_mime_type' => '',
'comment_count' => '0',
'ancestors' =>
array (
0 => 2167,
1 => 2166,
),
'filter' => 'raw',
))
'post_parent' => 2167
est l'ID de la publication parente. Sur les pages sans parent, le paramètre est défini sur 0
.