如何根据我在 Redux Framework 选项页面中的值使用 get_template_part() 切换我的模板?

How can I switch my template with get_template_part() according to my value in my Redux Framework options page?

我想根据使用 Redux 框架的主题选项页面上选择的样式更改我的主题中的 header-layout。

我试图在 get_template_part() 函数中使用一个变量,但它似乎不起作用。 在那之后,我尝试使用 switch-statement 来更改用于 header.

的模板
$header_layout = $options_demo['header-layout-style'];

switch ($header_layout) {
    case "1":
        get_template_part( 'template-parts/header', '1' ); 
        echo "Template 1";
        break;
    case "2":
        get_template_part( 'template-parts/header', '2' ); 
        break;
    case "3":
        get_template_part( 'template-parts/header', '3' ); 
        break;
    case "4":
        get_template_part( 'template-parts/header', '4' ); 
        break;
    case "5":
        get_template_part( 'template-parts/header', '5' ); 
        break;
    case "6":
        get_template_part( 'template-parts/header', '6' ); 
        break;
    case "7":
        get_template_part( 'template-parts/header', '7' ); 
        break;
    default:
        get_template_part( 'template-parts/header', '1' ); 
}       

当我尝试代码时,我没有看到任何 header 布局。我尝试添加一个回声以查看它是否输出一些文本,这确实有效。我检查了文件的路径,它们是正确的。

知道如何更改模板文件吗?

在这里领导 Redux 的开发。这很可能是一个优先问题。这意味着你加载 Redux 的时间太晚了。您有几个选择:

  1. 使用默认值从 Redux 获取:Redux::get_options('OPT_NAME', 'KEY')
  2. 从 WP 获取,但您不会获得默认值:get_option('OPT_NAME')['KEY']
  3. 通过 Redux::init('OPT_NAME')
  4. 加载 redux

我自己想出来的,我在 link 搜索正确的模板部分时犯了一个错误

$header_layout = $options_demo['header-layout-style'];
switch ($header_layout) {
    case "1":
        get_template_part( 'template-parts/header/header', '1' ); 
        break;
    case "2":
        get_template_part( 'template-parts/header/header', '2' );
        break;
    case "3":
        get_template_part( 'template-parts/header/header', '3' ); 
        break;
    case "4":
        get_template_part( 'template-parts/header/header', '4' ); 
        break;
    case "5":
        get_template_part( 'template-parts/header/header', '5' ); 
        break;
    case "6":
        get_template_part( 'template-parts/header/header', '6' ); 
        break;
    default:
        get_template_part( 'template-parts/header/header', '1' ); 
}