首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在短代码中解析短代码?

如何在短代码中解析短代码?
EN

WordPress Development用户
提问于 2020-02-28 03:49:24
回答 2查看 154关注 0票数 0

我创建了一个快速函数和简短代码,允许我只包含登录用户内容:

代码语言:javascript
复制
function content_for_logged_in($atts,$content){
    $logged_in_content = "";
    if(is_user_logged_in()){
        $logged_in_content = $content;
    }
    return $logged_in_content;  
}
add_shortcode('logged-in-content','content_for_logged_in');

但它不解析内容中的短代码,例如:

代码语言:javascript
复制
[logged-in-content]
Some test content...
[wpforms id="752"]
[/logged-in-content]

在这种情况下,将显示wpforms短代码,而不是表单。

是否有办法改变我的功能,以便内容中的短代码将被解析?

谢谢你,斯科特

EN

回答 2

WordPress Development用户

回答已采纳

发布于 2020-02-28 07:04:16

您要查找的函数名为do_shortcode ( Wordpress 5.4中也有一个函数apply_shortcode,它也是这样做的)。法典页

就您的例子而言,这将起作用:

代码语言:javascript
复制
function content_for_logged_in($atts,$content){
    $logged_in_content = "";
    if(is_user_logged_in()){
        $logged_in_content = do_shortcode($content);
    }
    return $logged_in_content;  
}
add_shortcode('logged-in-content','content_for_logged_in');

编码愉快!

票数 1
EN

WordPress Development用户

发布于 2020-02-28 04:38:13

我找到了实现我现在需要的东西的方法..。

代码语言:javascript
复制
    function content_for_logged_in($atts,$content){
            $logged_in_content = "";
            $embedded_shortcode = $atts['embedded_shortcode'];
            if(is_user_logged_in()){
                $logged_in_content = $content;
                if(!empty($embedded_shortcode)) {
                    $logged_in_content .= do_shortcode('['.$embedded_shortcode.']');
                }
            }
            return $logged_in_content;  
        }

add_shortcode('logged-in-content','content_for_logged_in');

然后这个:

代码语言:javascript
复制
[logged-in-content embedded_shortcode="wpforms id=752"]
    Use the form below to upload photos for the Photo Galleries page.
[/logged-in-content]

我仍然感兴趣的是,是否有一种方法可以这样做,以便实际的短代码可以在封闭的短代码的$content区域内,以防有时我想这样做,这样我就可以将嵌入的短代码放在内容中的其他地方,或者可以在$content区域内执行多个短代码。

对于我当前的需要,上面的解决方案就能做到这一点。

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/359660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档