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

Unable run the code in wordpress custom widget area

我在WordPress 4.8 版本中创建了一个widget 区域,在那个widget 区域我正在使用文本widget。

代码:

<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 文件中,它工作正常,但在文本小部件中不起作用任何解决方案

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

您可以使用短代码来完成此操作。

首先,在 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' );

终于。您可以通过将其放入小部件中来使用简码:

[mygooglead]