在POST状态转换/发布时将POST元数据设置为随机值

时间:2014-11-13 作者:location

在发布未发布的草稿时,我希望将自定义元值“post views count”设置为介于8291013.

我正在使用下面的代码,但并不总是有效。当我create a test draft and publish it immediately, 但是,当我把一篇文章保存几天或分配给其他作者时,它就不起作用了。

注意:我不想创建新的自定义字段。我只想更新现有字段,该字段名为post_views_count.

function wpse_custom_field_on_publish( $new, $old, $post ) {
  if ( $new == \'publish\' && $old != \'publish\' && !get_post_meta( $post->ID, \'post_views_count\', true ) ) {
    update_post_meta( $post->ID, \'post_views_count\', rand(829, 1013), true );
  }
}
add_action( \'transition_post_status\', \'wpse_custom_field_on_publish\', 10, 3 );

1 个回复
SO网友:Domain

您的代码略有更改,

function wpse_custom_field_on_publish( $new, $old, $post ) {
    // Only run on "from X > to publish"-transitions
    if ( $new === \'publish\' && $old !== \'publish\') { 
        $page_views = get_post_meta( $post->ID, \'post_views_count\', true );
        // Only set \'post_views_count\' post meta value if there is none so far
        if ( empty( $page_views ) )
             update_post_meta( $post->ID, \'post_views_count\', rand( 829, 1013 ) ); 
    }
} 
add_action( \'transition_post_status\', \'wpse_custom_field_on_publish\', 10, 3 );

结束

相关推荐

is_page Funtion for Posts ?

我正在使用插件Bottom of every post有一个函数if( !is_page( ) && file_exists( $fileName )){在每个页面的底部打印自定义文本,我想在pages not on the posts, 有人能给我建议一个功能或方法来完成这项工作吗?任何建议都是可以接受的。