Actuellement, WordPress crée un XML Sitemap
à chaque fois qu'une POST
ou PAGE
est PUBLISHED
en utilisant cette action ...
add_action("publish_post", "create_news_sitemap");
Je ne fais pas le même processus mais pour un News Sitemap
qui a des critères différents. En tant que tel, il ne peut afficher que les messages postérieurs à 48 heures.
Mon code fonctionne mais je voudrais l’optimiser légèrement.
Ainsi, lorsque add_action("publish_post", "create_news_sitemap");
est exécuté, je souhaite uniquement exécuter une fonction. Il s’agit d’un type de publication personnalisé nommé news
qui publie une publication.
Est-ce quelque chose qui est possible?
lorsque l'action publish_post
est exécutée, puis-je détecter quel POST_TYPE le met en action?
publish_post
vous donnera un deuxième paramètre si vous le demandez. Notez le quatrième paramètre de l'appel add_action
. C'est votre objet post.
function run_on_publish_wpse_100421( $postid, $post ) {
if ('news' == $post->post_type)
// your code
}
}
add_action('publish_post','run_on_publish_wpse_100421',1,2);
L'action publish_post
obtient l'ID de publication en tant qu'argument, transmettez-la à get_post_type
pour déterminer le type de publication:
function create_news_sitemap( $post_id ){
$type = get_post_type( $post_id );
if( 'news' == $type ){
// do something
}
}
add_action("publish_post", "create_news_sitemap");
Au lieu de vérifier le type de publication, vous pouvez également utiliser publish_{post_type }
. Dans votre cas publish_news
function run_on_publish_wpse_100421( $postid, $post ) {
// your code
}
add_action('publish_news','run_on_publish_wpse_100421',1,2);