定制器添加部分参数‘ACTIVE_CALLBACK’=>“IS_FRONT_PAGE”不起作用

时间:2015-09-10 作者:StephenRios

我正在为我的主题设置自定义项。我有我需要的所有部分和控件,但现在我正试图使其中一些只显示在某些页面上。

我的第一站是只与主页相关的部分。我读过here 我可以在arguments对象中添加一个名为“active\\u callback”的参数,并向其传递一个检查函数,如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 在检查这些值时,我已经尝试了这两种方法。

有人能帮帮我吗

2 个回复
最合适的回答,由SO网友: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();

SO网友:Jignesh Patel

用以下代码替换您的代码: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(); }
注意:试试看。未测试代码。希望它能起作用。

相关推荐