无法运行wordpress自定义小部件区域中的代码

时间:2017-08-03 04:59:41

标签: php wordpress widget

我在WordPress 4.8版本中创建了一个小部件区域,在该小部件区域我正在使用文本小部件。

代码:

<div id='div-gpt-ad-xxxxxxxxxxxxx-x'>
<script>
googletag.cmd.push(function() { googletag.display('div-gpt-ad-xxxxxxxxxxxxx-x'); });
</script>
</div>

小部件创建代码:

global $blog_id;
if( $blog_id == '2' ) {

    function wpb_widgets_init() {

    register_sidebar( array(
        'name'          => 'Header Widget Area for RBI',
        'id'            => 'custom-header-widget',
        'before_widget' => '<div class="chw-widget">',
        'after_widget'  => '</div>',
        'before_title'  => '<h2 class="chw-title">',
        'after_title'   => '</h2>',
    ) );

}
add_action( 'widgets_init', 'wpb_widgets_init' );

}
<?php
global $blog_id;
if( $blog_id == '2' ) {

if ( is_active_sidebar( 'custom-header-widget' ) ) : ?>
    <div id="header-widget-area" class="chw-widget-area widget-area" role="complementary">
    <?php dynamic_sidebar( 'custom-header-widget' ); ?>
    </div>

<?php endif; } ?>

上面的脚本如果我们直接放在header.php或footer.php文件中它工作正常,但在文本小部件中没有工作任何解决方案

2 个答案:

答案 0 :(得分:0)

你通常不能将PHP直接放在一个小部件中,Wordpress不允许它。有一些插件可以让你这样做,但我不能保证任何一个特别的,所以我会让你自己找到它。

答案 1 :(得分:0)

您可以使用短代码来完成此任务。

首先,使用functions.php中的以下行启用小部件中的短代码:

add_filter( 'widget_text', 'do_shortcode' );

接下来,您将创建一个短代码:

function mygooglead_shortcode() {
    ob_start();
    ?>
<div id='div-gpt-ad-xxxxxxxxxxxxx-x'>
<script>
googletag.cmd.push(function() { googletag.display('div-gpt-ad-xxxxxxxxxxxxx-x'); });
</script>
</div>
    <?php
    return ob_get_clean();  
}
add_shortcode( 'mygooglead', 'mygooglead_shortcode' );

最后。你可以把它放在widget中使用短代码:

[mygooglead]