Detect Post Type when publish_post is ran

I currently have WordPress build an XML Sitemap everytime a POST or PAGE is PUBLISHED by using this Action…

add_action("publish_post", "create_news_sitemap");

I am not doing the same process but for a News Sitemap which has different criteria. Such as it can only show post that are no older then 48 hours.

I have my code working but I would like to optimize it slightly.

So when add_action("publish_post", "create_news_sitemap"); is ran, I would like to ONLY run a function is it is a Custom Post Type named news that is Publishing a post.

Is this something that is possible?

when the publish_post action is ran, can I detect which POST_TYPE is setting it into action?

3 Answers
3

publish_post will give you a second parameter if you ask for it. Notice the fourth parameter of the add_action call. That is your post object.

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);

Leave a Comment