如何根据ACF条件注册菜单

时间:2015-04-17 作者:Johann

我正在尝试注册Wordpress菜单,具体取决于ACF字段条件。

$logo = get_field(\'logo\',\'options\');

if ($logo) {

register_nav_menus(array(
\'brand_centered_left\' => __(\'Brand Centered Navigation (Left)\', \'roots\')
));  

}
但是,如果我测试此代码,导航将不会显示。它看起来像ACF和功能。php不能很好地协同工作,但我不确定。

我正在nav中添加此代码。php(它包含在my functions.php文件中)。我正在使用Wordpress+ACF 5.0和Wordpress根主题。

有什么想法吗?

编辑

所以我试着直接调用字段:

if (get_field(\'logo\',\'options\')) {
  register_nav_menus(array(
  \'brand_centered_left\' => __(\'Brand Centered Navigation (Left)\', \'roots\')
  ));  
}
而且很有效!但是,如果我尝试只使用$徽标,它将不会起作用。

奇怪的

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

好的,问题是我在函数外添加了变量。经过一些清理后,代码看起来是这样的,它可以工作!

function roots_setup() {

// Variables

$header_type = get_field(\'header_type\',\'options\');

if (($header_type)==\'brand-centered\') {

register_nav_menus(array(
\'brand_centered_left\' => __(\'Brand Centered Navigation (Left)\', \'roots\')
));  

register_nav_menus(array(
\'brand_centered_right\' => __(\'Brand Centered Navigation (Right)\', \'roots\')
));  

} else {

register_nav_menus(array(
\'primary_navigation\' => __(\'Primary Navigation\', \'roots\')
));

}

结束

相关推荐

Global functions on WPMU

我在一个多站点环境中工作,所有站点都是相关的。最近的许多发展都要求我将某些功能复制并粘贴到许多不同的主题文件夹中,如果我需要到处更新它们,就会出现问题。拥有全局“functions.php”文件的最佳方式是什么?我的想法是要么在themes文件夹中包含一个文件并包含它,要么创建一个插件并启用该插件。