当前位置: 首页 > 知识库问答 >
问题:

WordPress在短代码中解析短代码

顾乐池
2023-03-14

我有一个短代码(outputURL),用于将值输出到URL中。该值从短代码(valueURL)中检索。valueURL输出是文本包装在div中:

<div class="">textForURL</div>

我只需要textForURL值,不包括div标记。到目前为止,我只能输出div标记和文本,而不能输出纯文本的干净版本。

这是我的简码函数:

function ouputURL(){

$content = '[valueURL id="5"]';
$clean = preg_replace("#<div.*?>.*?</div>#", "", $content);
echo do_shortcode( $clean );
}

add_shortcode('output', 'ouputURL');

我进行了研究,并能够将其整合在一起,但我不确定我是否朝着正确执行的方向前进。任何能帮助我实现目标的人都将不胜感激。

编辑:

这是为了进一步澄清我的问题。

>

  • 我正在使用一个WordPress插件,它管理帖子中所有嵌入的视频网址;

    作为一个功能,插件允许通过它的管理页面添加一个视频id(即vid=X23dw34),该页面在查看主视频之前在播放列表中查看;

    我想使用一个广告旋转器插件来管理多个视频id,并根据广告服务参数提供单个视频id,并通过一个短代码(即[valueURL id=“5”])调用;

    广告旋转器插件在视频id周围包装一个DIV:

    <代码>

    "...video.com/embed/

    “…video.com/embed/X23dw34…”

    我不确定我对短代码和解析的有限理解是问题所在,还是我的最终目标不能通过一个简单的函数来处理。

    如果您需要更多信息,请告诉我。

    编辑2:

    这是整个iframe,为了正确格式化,我删除了额外的选项卡:

    <代码>


  • 共有1个答案

    锺离卓
    2023-03-14

    我不完全理解,但希望这能让你走上正轨:

    add_shortcode('output', 'ouputURL');
    function ouputURL ( $atts ) {
        if(!isset($atts['id']))
            return;
        $valueURL = do_shortcode("[valueURL id={$atts['id']}]");
        preg_match("#<div.*?>(.*?)</div>#", $valueURL, $matches);
        if(!isset($matches[1]))
            return;
        return $matches[1]; // the ID
    }
    

    因此,如果您将[output id=5]放在帖子/页面的内容中,它将检索[valueURL id=5]的结果,找到div标记的内容并返回打印在页面上。

    您可以修改它以返回不仅仅是ID的东西。

     类似资料:
    • 我有2个WordPress短代码正在使用: 一章。[章节名称="开始"]...内容...[/章] 目录[toc][/toc]。toc需要显示章节的简单列表。 规范: 一篇文章可以有很多章节。 帖子中可以有一个、两个或没有toc短代码。 toc可以在章节之前或之后,也可以在章节之前和之后。这取决于帖子作者,所以我事先不知道。 我不能使用嵌套的简码,因为这些对作者来说很难使用。 我想到了使用静态toc

    • 我有某种短代码,如。 我想从中提取这个短代码,然后将这两个属性:和发送到SDL World Server进行翻译。 从SDL得到响应后,我想相应地替换那个短代码。 有什么建议或帮助吗?

    • 我正在制作wordpress插件,我想用短代码在帖子中插入一些非常庞大的代码。我得到了这个模拟我的问题的简单代码 并发布此内容 给出了这样的结果: 我希望它在开始和结束之间插入“通缉”文本。我知道最简单的解决方案是在want()中返回“want”,但我已经有了所有这些函数,它们非常庞大。有没有一个简单的解决方案,而不必从头开始写? @编辑:也许有什么方法可以将函数的所有回音存储在字符串中而不打印?

    • 我用WooCommerce插件设置了WordPress,产品被循环输出...直到那里。 我想增加访问者能够投票支持产品的可能性。所以我在找一个插件,找到了一个。 但这才是真正的问题!名为“喜欢照片”的插件为我提供了WordPress简码功能。如果我在WordPress编辑器中插入短代码(图像前后),一切都工作正常。 但是我需要把代码放在PHP文件(循环输出产品的文件)本身。 因此,我尝试使用PHP

    • 我有一个wordpress插件,可以上传用户头像。我正在尝试使用一段显示缩略图的代码,并将其放在一个短代码中,这样我就可以将缩略图放在网站的任何位置。 我对php比较陌生,我知道如何为wordpress启动一个短代码,但我不知道如何构造短代码来承载php。有谁能给我提个建议吗? php下面的代码是插件文件的原文: 我想放在短代码中的代码如下,基本上它显示了缩略图。我试图用这个在functions.

    • 我只想在我的wordpress主题菜单栏中添加一个快捷键,用于处理功能。 我尝试了在菜单中使用“