Append HTML Using Shortcode

时间:2017-08-04 作者:zzMzz

我写了一个WordPress插件,它有一个短代码。短代码位于WordPress页面上,该页面上有其他短代码。其他短代码输出HTML,我想将我的短代码中的HTML附加到该输出中。

我想知道是否可以使用DOMDocument和getElementById来实现这一点。

WordPress页面如下所示:

[Shortcode #1]

[Shortcode #2]

[Shortcode #3]

[date_info]
我的插件执行以下操作:

function date_important_info(){

ob_start();
display_date($date);
$html = do_shortcode( ob_get_clean() );
return $html;

function display_date($date){ ?>
    <div style="">
        <span>Date:</span>
        <span><?php echo $date ?></span>
    </div>  
<?php }
}

add_shortcode(\'date_info\',\'date_important_info\');
目前,我的快捷码输出显示在Wordpress页面的底部。我希望将我的短代码的输出附加到HTML中由其他短代码之一输出的div中。

1 个回复
SO网友:Johansson

第一件事第一。你不应该真的使用echo 在短代码内,除非无法返回值。在您的情况下,只需将其转换为返回值的函数:

function date_important_info(){

    return display_date($date);

    function display_date($date){ 
        $data = "
            <div id=\'my-shortcode\' style=\'\'>
                <span>Date:</span>
                <span> {$date} </span>
            </div>";
        return $data;
     }
}

add_shortcode(\'date_info\',\'date_important_info\');
现在,关于附加数据的问题。您可以选择短代码的HTML输出,并使用jQuery将其附加到另一个元素中。下面是一个简单的例子:

// Get shortcode\'s content
var content = $(\'#my-shortcode\').outerHTML();
// Add it after the element you want
$(\'#the-element\').after(content);
我已经向您的短代码包装器添加了一个ID,以便能够通过jQuery选择它。您还可以使用.append().before(), 根据您的需要。

结束

相关推荐

在函数中添加媒体屏幕的新大小。php不起作用

您好,我正在尝试在媒体设置中的大尺寸下添加新尺寸,但这不起作用,我已经研究了不同的文章,但肯定我遗漏了一些东西,请指导我。This is what I am trying to achieve: http://prntscr.com/g2idly add_theme_support( \'post-thumbnails\' ); add_image_size( \'featured-large\', 640, 294, true ); // width, height, c