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

时间:2019-04-25 10:20:54

标签: php wordpress redux-framework

我想根据Redux Framework在主题选项页面上选择的样式来更改主题中的页眉布局。

我试图在get_template_part()函数中使用一个变量,但是它似乎不起作用。 之后,我尝试使用switch语句来更改标头使用的模板。

$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' ); 
}       

尝试代码时,看不到任何标题布局。我试图添加回显以查看它是否输出一些文本,并且确实起作用。我检查了文件的路径,它们是正确的。

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

2 个答案:

答案 0 :(得分:0)

Redux的主要开发人员在这里。这很有可能是一个优先问题。意味着您加载Redux太晚了。您有几种选择:

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

答案 1 :(得分:0)

我自己弄清楚了,我在搜索正确模板部分的链接中犯了一个错误

$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' ); 
}