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

WordPress短代码在错误的地方

和魁
2023-03-14

我正在制作wordpress插件,我想用短代码在帖子中插入一些非常庞大的代码。我得到了这个模拟我的问题的简单代码

function shortcode_fn( $attributes ) {
    wanted();
    return "unwanted";
}
add_shortcode( 'simplenote', 'shortcode_fn');

function wanted(){
    echo "wanted";
}

并发布此内容

start
[simplenote]
end

给出了这样的结果:

wanted
start
unwanted
end

我希望它在开始和结束之间插入“通缉”文本。我知道最简单的解决方案是在want()中返回“want”,但我已经有了所有这些函数,它们非常庞大。有没有一个简单的解决方案,而不必从头开始写?

@编辑:也许有什么方法可以将函数的所有回音存储在字符串中而不打印?

共有3个答案

罗均
2023-03-14

WordPress的标准方式是提供两个功能。第一,get_wanted()将返回所需字符串;另一个是wanted(),它只是:

function wanted() {
    echo get_wanted();
}

因此,您可以选择其中一种,但只能将大部分代码放在一个位置。这是WordPress中的常见模式,例如标题()获取标题()

正如@Ruslan提到的,不重写现有函数来构建字符串的最标准方法是使用输出控制。

漆雕安晏
2023-03-14

点击此链接http://codex.wordpress.org/Shortcode_API#Overview

当the_content显示时,短代码API将解析任何注册的短代码,如“[我的短代码”,分离和解析属性和内容(如果有),并向它们传递相应的短代码处理程序函数。短代码处理程序返回的任何字符串(没有回声)都将插入帖子正文中代替短代码本身。

所以所有的短代码函数都必须返回,你可以把你的函数“想要”改成这样:

function wanted(){
    return "wanted";
}
薄龙光
2023-03-14

一个简单的解决方法是使用输出控制功能:

function shortcode_fn( $attributes ) {
    ob_start(); // start a buffer
    wanted(); // everything is echoed into a buffer
    $wanted = ob_get_clean(); // get the buffer contents and clean it
    return $wanted;
}
 类似资料:
  • 我有一个短代码(outputURL),用于将值输出到URL中。该值从短代码(valueURL)中检索。valueURL输出是文本包装在div中: 我只需要textForURL值,不包括div标记。到目前为止,我只能输出div标记和文本,而不能输出纯文本的干净版本。 这是我的简码函数: 我进行了研究,并能够将其整合在一起,但我不确定我是否朝着正确执行的方向前进。任何能帮助我实现目标的人都将不胜感激。

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

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

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

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

  • 我需要围绕WordPress的短代码翻译的内容。这些是问题的先决条件: 我必须围绕“短代码”,而不是短代码的内容。例如