Как я могу переключить свой шаблон с помощью get_template_part() в соответствии с моим значением на моей странице параметров 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' ); 
}       

Когда я пробую код, я не вижу никакого макета заголовка. Я попытался добавить эхо, чтобы увидеть, выводит ли оно текст, и это работает. Проверил пути к файлам, они правильные.

Любая идея, как я могу изменить свой файл шаблона?


person Thessa Verbruggen    schedule 25.04.2019    source источник


Ответы (2)


Ведущий разработчик Redux здесь. Скорее всего, это приоритетная проблема. Это означает, что вы загружаете Redux слишком поздно. У вас есть несколько вариантов:

  1. Получить из Redux со значениями по умолчанию: Redux::get_options('OPT_NAME', 'KEY')
  2. Получить из WP, но вы не получите значения по умолчанию: get_option('OPT_NAME')['KEY']
  3. Загрузите избыточность, выполнив Redux::init('OPT_NAME')
person Dovy    schedule 27.04.2019

Сам разобрался, ошибся в ссылке на поиск нужной части шаблона

$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' ); 
}
person Thessa Verbruggen    schedule 11.12.2019