如果找到任何`Add_Shortcode()`,是否对_Content()应用筛选器以分隔内容?

时间:2014-02-13 作者:Jorge Y. C. Rodriguez

我甚至不知道这是否可能array_mapstr_replace, 但想法如下:

此函数用于获取发送前的内容,clean_custom_content, 这就是我不知道如何处理的地方。。所以让我们假设我们拥有所有的内容,这些内容将被包装在section 但每次都有一个简短的代码[] 这需要在输出短代码的内容时关闭。他们打开了一个新的section 并继续该页面的内容。

有意义吗?任何想法或帮助都会很好。。谢谢

function get_custom_content( $more_link_text = null, $strip_teaser = false) {
    $content = get_the_content( $more_link_text, $strip_teaser );
    $content = apply_filters( \'the_content\', $content );
    $content = str_replace( \']]>\', \']]>\', $content );
    $final_cotent = clean_custom_content($content);
    echo $final_cotent;
}

clean_custom_content()::

function clean_custom_content($content){
    if(do_clean_shorcode(\'someshorty\')){
         $content = "<section>".$content.\'</section>\';
     return $content;
    }
    return null;
}

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

这对于泛型来说非常具有挑战性,因为短代码可以嵌套、可以自动关闭或封闭等等。

如果需要在有限且固定的特定短代码集上执行此操作,则会更容易。我会注销他们的短代码处理程序,注册调用原始处理程序的自定义处理程序,并在其周围添加必要的标记。

结束

相关推荐

shortcode in a custom metabox

我正在尝试将插件中的短代码添加到我的自定义元数据库中。我已经读过,这不是我要做的事情,但在这种情况下,我确实需要它来工作。客户端可能不会添加视频,但可能会向其中添加图像,或者需要一些东西来确保它仍然可以用于标准内容。我遇到的问题是,它只输出这样的短代码-[youtube id=“vfGZZJnoJ0U”]我曾尝试向我的metabox中添加过滤器,但仍然显示了这一点。这是我的自定义metabox设置:add_action(\'add_meta_boxes\', \'testimonials_meta_box