私は私のテーマのためのカスタマイザの設定に取り組んでいます。私は必要なセクションとコントロールをすべて持っていますが、今はそれらのいくつかを特定のページにのみ表示するようにしています。
私が最初に立ち寄るのは、ホームページにのみ関連するセクションです。ここで を読んで 、 "active_callback"という引数をargumentsオブジェクトに追加し、is_front_page
やis_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-page
とhome
として数えるべきだと思います。
誰かが私を手助けしてくれますか
問題は私が複数のループを持っていて、それぞれがフロントページに異なるクエリを持っていたことです。毎回それらを確実にリセットした後、この問題は自動的に解決しました。
たとえば、私の新しいクエリとループは次のようになります。
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();
このコードでコードを置き換えます。 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(); }
注:試してみてください。コードはテストされていません。それがうまくいっていることを願っています。