Post publish only hook?

时间:2012-04-01 作者:BAU

是否有任何钩子只有在帖子第一次“发布”时才会触发。

我不想在帖子“更新”或其状态设置为“未发布”然后再次“发布”时执行代码。

编辑:

add_action(\'draft_to_published\',\'func_tion\');

function func_tion($post){
    $post_id = $post->ID;   

    if ( !get_post_meta( $post_id, \'mycoderan\', $single = true ) )
    // run code to manipulate data
    wp_enqueue_script(\'plugin_name\',plugin_dir_url(__FILE__ ).\'script.js\');
    $params = array() // set parameters
    wp_localize_script(\'plugin_name\', \'params\', $params );
    update_post_meta( $post_id, \'mycoderan\', true );
}

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

这个{$old_status}_to_{$new_status}{$new_status}_{$post->post_type} 钩子通常可以解决这个问题。

为了避免在post状态更改为draft然后再次发布(已发布后)时运行代码,请使用post_meta 功能。

Note: 更新的挂钩应为“draft\\u to\\u publish”,而不是“draft\\u to\\u published”,但是,如果您计划在WP 3.5中使用,则以下代码未修改

add_action( \'draft_to_published\', \'wpse47566_do_once_on_publish\' );
function wpse47566_do_once_on_publish( $post ) {
    // check post type if necessary
    if ( $post->post_type != \'a_specific_type\' ) return;

    $post_id = $post->ID;

    if ( !get_post_meta( $post_id, \'mycoderan\', $single = true ) ) {
        // ...run code once
        update_post_meta( $post_id, \'mycoderan\', true );
    }
}

结束

相关推荐

sub posts to parent post

如何制作类似此示例的子帖子http://www.samsung.com/us/mobile/cell-phones/SGH-I717RWAATT概述功能规格库。。。。与链接结构一样。。。。手机/SGH-I717RWAATT-features。。。。手机/SGH-I717RWAATT-specs找不到任何插件或执行此操作的东西!谢谢