Как создать шорткод для Admin Theme Option - Wordpress

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

[ads_1] 
[ads_2]

Однако, когда я попытался получить параметры в моем шорткоде, он вообще не сработал и выдает ошибку

Ошибка синтаксического анализа: синтаксическая ошибка, неожиданные 'theme_settings' (T_STRING) в C:\xampp\htdocs\themewp\wp-content\themes\bots_final\shortcodes.php в строке 86

Вот мой фрагмент для моего шорткода, где я пытаюсь получить данные опций моей темы:

add_shortcode('ads_1', function($atts){
    return '
    <div>
        <?php $options = get_option( 'theme_settings' ); ?>
        <?php echo $options['banner1']; ?>
    </div>';

});

Я пытаюсь получить параметры на странице параметров темы. Проверьте мой код параметров темы:

<div>
<?php $options = get_option( 'theme_settings' ); ?>
<?php echo $options['banner1']; ?>
</div>

Есть идеи, в чем проблема, почему я не могу это схватить?

1 ответ

Вы открыли <?php внутри открытого php тега:

add_shortcode('ads_1', function($atts){
  $html = '<div>';
  $options = get_option( 'theme_settings' );
  $html .= $options['banner1'];
  $html .= '</div>';
  return $html;
});

Что вы получаете от get_option( 'theme_settings' );? Похоже, что вы предлагаете массив. Чтобы избежать конфликтов, я бы сохранить ваши настройки как 'mytheme_theme_settings',

Другие вопросы по тегам