web-dev-qa-db-ja.com

カスタマイザセクション追加引数 'active_callback' => "is_front_page"が機能しない

私は私のテーマのためのカスタマイザの設定に取り組んでいます。私は必要なセクションとコントロールをすべて持っていますが、今はそれらのいくつかを特定のページにのみ表示するようにしています。

私が最初に立ち寄るのは、ホームページにのみ関連するセクションです。ここで を読んで 、 "active_callback"という引数をargumentsオブジェクトに追加し、is_front_pageis_homeなどのチェック関数に渡すことができます。

私が試してみてそれがうまくいかなかったまで、簡単に見えた。私は私が考えることができるすべてを試しました(これは私がWordPressに私の最初の進出である)、それで今あなたが私の質問に答えることができることを望んで私はすべてあなたに来ています

私はfunctions.phpでカスタマイザを以下のようにカスタマイズしています。

add_action( 'customize_register', 'ablogs_theme_customizer' );
function ablogs_theme_customizer($wp_customize) {
     $wp_customize->add_section( 'home-page-slider-settings', array(                                             
           'title'          => "Slider Settings",
           'priority'       => 0,
           'active_callback' => 'is_front_page'
     ));
}

アクティブなコールバック引数を省略すると、カスタマイズ中はすべてのページに表示されます。私は本当にホームページに表示するためにこれが必要です。静的フロントページを使用していません。フロントページとして機能するカスタムのfront-page.phpファイルを実行しているので、これらの値をチェックするときには、両方ともfront-pagehomeとして数えるべきだと思います。

誰かが私を手助けしてくれますか

1
StephenRios

問題は私が複数のループを持っていて、それぞれがフロントページに異なるクエリを持っていたことです。毎回それらを確実にリセットした後、この問題は自動的に解決しました。

たとえば、私の新しいクエリとループは次のようになります。

query_posts( array(
    'category_name'=>"Cloud, Customer Engagement, Developers, Executive Thought Leadership, Networking, Services, Solutions, Team Engagement",
    'showposts'=>8,
    'order'=>DESC
));

// Start the loop
if ( have_posts() ) : while ( have_posts() ) : the_post();

    echo '<div class="post-card-wrap">';

        // Get the card
        get_category_post_card($post);

    echo '</div>';

// End the loop
endwhile; endif;

// Reset the query
wp_reset_query();
2
StephenRios

このコードでコードを置き換えます。 FOR MORE INFO

add_action( 'customize_register', 'ablogs_theme_customizer' );
function ablogs_theme_customizer($wp_customize) {
     $wp_customize->add_section( 'home-page-slider-settings', array(                                             
           'title'          => "Slider Settings",
           'priority'       => 0,
           'active_callback'   => 'callback_single'
     ));
} 

function callback_single() { return is_home(); }

注:試してみてください。コードはテストされていません。それがうまくいっていることを願っています。

0
Jignesh Patel