运行PUBLISH_POST时检测发布类型

时间:2013-05-23 作者:JasonDavis

我目前有WordPress构建XML Sitemap 每次aPOSTPAGEPUBLISHED 通过使用此操作。。。

add_action("publish_post", "create_news_sitemap");
我不是在做同样的过程,而是为了News Sitemap 有不同的标准。例如,它只能显示不早于48小时的帖子。

我有我的代码工作,但我想稍微优化一下。

那么什么时候add_action("publish_post", "create_news_sitemap"); 是运行的,我只想运行一个函数,它是一个名为news 那是在发布帖子。

这是可能的吗?

publish_post 操作已运行,我是否可以检测到哪个POST\\U类型正在将其设置为操作?

3 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

publish_post 如果需要,将提供第二个参数。请注意add_action 呼叫这是您的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);

SO网友:Milo

这个publish_post 操作获取post ID作为参数,将其传递给get_post_type 要了解它是什么类型的帖子:

function create_news_sitemap( $post_id ){
    $type = get_post_type( $post_id );
    if( \'news\' == $type ){
        // do something
    }
}
add_action("publish_post", "create_news_sitemap");

SO网友:Manny Fleurmond

您可以使用publish_{post_type }. 在你的情况下publish_news

function run_on_publish_wpse_100421( $postid, $post ) { 
    // your code
}
add_action(\'publish_news\',\'run_on_publish_wpse_100421\',1,2);

结束