カスタム投稿のメタボックスに CMB2 を使用しています。以下のコードを使用してメタボックスを追加します。
$cmb_demo->add_field( array(
'name' => __( 'Test Text', 'cmb2' ),
'desc' => __( 'field description (optional)', 'cmb2' ),
'id' => $prefix . 'text',
'type' => 'text',
'show_on_cb' => 'show_this_field_if_true',
) );
私は、show_this_field_if_trueがtrueまたはfalseを返す関数になることを理解しています。しかし、私はこれを別の分野で条件付きにしたいのです。このフィールドは他のフィールドの値がtrueかどうかを示します。
これがフロントページのテンプレートでない場合、このフィールドを表示しない例です。
function show_this_field_if_true( $cmb ) {
if ( $cmb->object_id !== get_option( 'page_on_front' ) ) {
return false;
}
return true;
}
これをフィールドでどのように条件付きにすることができますか?
get_option
呼び出しをget_post_meta
への呼び出しに置き換える必要があります。
function show_this_field_if_true( $cmb ) {
// Check if other meta value exists
if ( ! get_post_meta( $cmb->object_id, 'other_meta_key_to_check' 1 ) ) {
return false;
}
return true;
}
覚えておいて、これは最初のページロードのために働くだけで、あなたがother_meta_key_to_check
値を更新しそしてページを保存するまでフィールドを表示しないでしょう。