私は現在、このアクションを使用して、POST
またはPAGE
がPUBLISHED
であるたびに、WordPressにXML Sitemap
を構築させています...
add_action("publish_post", "create_news_sitemap");
私は同じプロセスをしているのではなく、基準が異なるNews Sitemap
に対して行っています。 48時間以上経過していない投稿のみを表示できます。
私は自分のコードを動かしていますが、少し最適化したいと思います。
add_action("publish_post", "create_news_sitemap");
が実行されたとき、私は関数を実行したいのですが、それは投稿を公開するnews
という名前のカスタム投稿タイプです。
これは可能ですか。
publish_post
アクションが実行されたとき、どのPOST_TYPEがそれをアクションに設定しているかを検出できますか?
publish_post
はあなたがそれを要求した場合あなたに2番目のパラメータを与えるでしょう。 add_action
呼び出しの4番目のパラメーターに注目してください。それがあなたの投稿オブジェクトです。
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);
publish_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");
投稿タイプを確認する代わりに、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);