未公開のドラフトを公開する際には、カスタムメタ値 "post views count"を829
と1013
の間のランダム変数に設定してください。
私は以下のコードを使っていますが、それはいつもうまくいくとは限りません。私がテストドラフトを作成してすぐにそれを公開するが、数日間投稿を保存したときでないとき、それは動作します。他の作家に割り当ててもうまくいきません。
注:新しいカスタムフィールドを作成したくありません。
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 );
コードを少し変更してください。
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 );