管理主题选项的快捷代码?

时间:2014-08-12 作者:user2918348

我正在尝试为我的2个主题选项创建一个快捷码。基本上,我想把我的主题选项抓取到我的快捷码中,这样我就可以在帖子的任何地方显示它们,比如:

[ads_1] [ads_2]
然而,当我试图在我的短代码上获得选项时,它根本不起作用,并且给了我一个错误

分析错误:语法错误,C:\\xampp\\htdocs\\themewp\\wp content\\themes\\bots\\u final\\shortcode中出现意外的“theme\\u设置”(T\\u字符串)。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>
你知道我拿不到它有什么问题吗?

2 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

首先,永远不要使用匿名函数,永远不要。匿名函数以后不能通过插件或主题删除

其次,看看Shortcode API 关于如何正确创建短代码。

第三,这不是wordpress特有的问题,而是纯粹的php问题。您将html和php一起使用,但没有正确的语法来区分html和php。这是您的短码函数,假设它是一个

add_shortcode(\'ads_1\', \'my_shortcode\' );

function my_shortcode($atts){
    $options = get_option( \'theme_settings\' );

        $output = \'<div>\' . $options[\'banner1\'] . \'</div>\';

    return $output;

}

SO网友:Derek

您收到的错误很可能是由于您的shortcode函数而导致的,它不起作用的原因也很可能是由于您的shortcode函数。看起来您正试图在返回中重新声明php。试试这个(注意我没有

function ads_one_shortcode($content = null) {

    $options = get_option( \'theme_settings\' );

    return \'<div>
            \' . $options[\'banner1\'] . \'
        </div>\';
}
add_shortcode("ads_1", "ads_one_shortcode");
请参见Add Shortcode on the Wordpress 法典。

结束

相关推荐

DO_ShortCode()不会返回PHP数组

我做了一个短代码[get_clients] 它应该在通过调用时返回所有客户端的数组do_shortcode(\'[get_clients]\'). 但它只返回一个字符串“Array”。为什么?