WP_Customize-检测POST类型以显示/隐藏定制器选项

时间:2016-04-07 作者:Philip Ingram

我如何告诉自定义程序根据正在预览的帖子类型仅加载某些自定义程序选项?

i、 e.使用:

is\\u woocommerce
is\\u shop
is\\u cart
等。

在添加customizer选项字段时,我可以检查以确保woocommerce位于“active\\u plugins”数组中,因此只有在安装了woocommerce并处于活动状态时才提供这些选项,但是我需要找到一种方法,在实际查看商店、产品、购物车等类型页面时,仅将这些字段加载到customizer中。

目前我唯一的解决方法是使用js/css来显示/隐藏字段,但在customizer预览中在页面之间导航时会达到最佳效果,而且由于每个页面都会得到完全刷新,因此只在必要时根据正在预览的post\\u类型动态加载这些选项会更容易。

1 个回复
最合适的回答,由SO网友:Rajeeb 整理而成

可以基于上下文显示自定义程序控件。具有active_callback WordPres 4.0中引入的API,您可以控制在何处显示特定选项。使用可选的active\\u callback参数添加如下自定义程序选项。

$wp_customize->add_control( \'wc_cart_page_option\', array(
\'label\'           => esc_html__( \'Cart Page Options\' ),
\'section\'         => \'wc_cart\',
\'active_callback\' => \'estore_is_cart\',
));
现在创建一个名为“estore\\u is\\u cart”的函数,以检查用户是否正在预览购物车页面。

function estore_is_cart(){
  if( is_cart() ) {
    return true;
  } else {
    return false;
  }
}
注意:您还可以直接将is\\u cart函数检查传递给“active\\u callback”参数。

查看博客文章中的上下文控件部分:https://make.wordpress.org/core/2014/07/08/customizer-improvements-in-4-0/

相关推荐

将图像分配给POST-TYPE将不再起作用:超时?

奇怪,但由于某种原因,我在Wordpress后端将“媒体库”中的图像分配给帖子类型时,突然出现以下错误。致命错误:在/home/中超过了80秒的最大执行时间。sites/85/site2556/web/wp includes/class wp image editor gd。php在线182->http://cloud.florianmatthias.com/ZMHn图片上传成功,我无法将其分配给帖子。图像大小仅为560x560px。我停用了所有插件,但没有起到任何作用。亲切的问候