web-dev-qa-db-ja.com

Wordpressカスタマイザファイルで現在のページIDを取得する方法

active_callback' => 'is_front_page'と同じように、表示しているページに基づいてカスタマイザ設定を非表示または表示しようとしていますが、customizer.phpファイルから現在のページIDにアクセスする方法が見つかりません。現在のページIDに基づいたカスタムコールバックを通してactive_callback' => 'is_specific_page'を使えるようにしたいです。

 
 function is_specific_page(){
 
 //論理的な戻り値TRUE OR現在のページに依存するFALSE [] ____] 

私は無駄に以下のすべてを使ってみました:

global $post; $post->ID();

global $wp_query; $post_id = $wp_query->post->ID;

get_the_ID();

ご協力ありがとうございます。

1
Alex E.

ご質問ありがとうございます。

active_callbackはまさにあなたが探しているものです。あなたはコントロールでそれを使用することができます:

$wp_customizer->add_control(
    'setting_name',
    array(
        'type' => 'text',
        'section' => 'section_name',
        'label' => 'Option with context',
        'active_callback' => 'is_front_page'
    )
);

そしてセクションで:

$wp_customize->add_section(
    'section-name',
    array(                                             
        'title' => 'Section with context',
        'active_callback' => 'is_front_page'
     )
);

上記の例では、ネイティブのis_front_page関数のおかげで、この新しい設定/セクションはフロントページにのみ表示されます。他の 条件付きタグを使用することもできます。

しかし、もちろんあなたはあなた自身のコンテキストを作ることができます:

function mytheme_is_contact_page() {
    return is_page_template( 'template-contact.php' );
}

function mytheme_is_page_id_123() {
    return is_page( 123 );
}
1