クライアントがカスタムフィールドに追加しない場合は、特定のカスタムフィールドにデフォルト値を設定しようとしています。
さらに一歩進んで、cat = 22が選択された場合、このカスタムフィールドは自動的に投稿に追加されます。デフォルトでは、クライアントが適切な数を追加することを願っています
これはグローバルな機能によって達成できると思いますが、私の脳は今これを処理していません
あなたはsave_post
アクションにフックを追加することによってそれをチェックすることができます。これにより、すべての投稿にカスタムフィールドのデフォルト値が設定されます。
add_action( 'save_post', 'wpse8170_save_post', 10, 2 );
function wpse8170_save_post( $post_id, WP_Post $post ) {
if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || !current_user_can( 'edit_post' ) ) {
return;
}
if ( has_category( 22, $post_id ) && !get_post_meta( $post_id, 'my-custom-field', true ) ) {
update_post_meta( $post_id, 'my-custom-field', 'my default value' );
}
}
あなたはグローバルを通してこれをしないでしょう、あなたは単にadd_post_meta
のデフォルトの機能性を使います。
// your loop
if ( in_category(22)) {
//check if the meta field has a value
$meta_values = get_post_meta($post->ID, 'your_meta_key', true);
if(empty($meta_values)){
//add a default value
add_post_meta($post->ID, 'your_meta_key', 'some default value');
}
}