在插件中自动生成短码的过程--这是如何完成的?

时间:2015-02-20 作者:nelson

自动生成短代码是我看到许多插件作者使用的一种技术,但不幸的是,我还没有遇到一个详细介绍这个主题的教程,所以我希望这个社区的人能帮助我清楚地理解它,因为我正在努力在自己的插件中实现它。

我所说的自动化过程是这样的:在用户在插件的自定义post类型元框中选择/输入参数后,他或她保存信息,并立即在自定义post列中生成并输出一个快捷码(其他人也会显示一条包含shortocde的消息,用户只需将其复制并粘贴到他或她想要使用它的任何地方)。

例如,在显示图书信息的插件中,用户输入图书名称、ISBN编号、所属类别等。键入所有这些详细信息后,在执行保存/发布操作后会自动生成一个短代码“[图书id=“1”]”。键入另一本书的详细信息也会导致相同的操作,只更改ID,即生成“[书ID=“2”]”

我的问题是如何做到这一点。更具体地说:

作者如何将保存metabox值的功能与生成快捷码的功能融合在一起使用上面这本书的例子,我希望有人能清楚地向我解释“自动化过程是如何完成的”。尽管我没有给出代码示例,但我觉得上面的内容足以得到答案(此外,它有助于关注实际问题)。然而,如果您确实需要一些东西,那么我将编写一个示例:-)

作为一个背景:

我知道如何创建自定义帖子类型,我知道如何为自定义帖子类型创建自定义列,我知道如何将值输出到这些自定义列中,我了解如何从元框保存自定义值,我知道如何创建短代码(包括带参数的短代码)。现在的问题是,我必须在前端手动键入短代码(包括参数),这是我想要自动化的过程(即自动生成短代码并将其放置在自定义列的某个位置,用户只需将粘贴复制到他/她希望输出显示的任何位置)

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

我对你的问题有点困惑。如果您知道如何使用属性创建短代码,那么我认为您的问题的答案就是简单地使用预定义的正确属性输出文本。

例如,只需在自定义列中为适当的参数添加文本,例如echo“[book id=”.$post->id“]”。短代码不是以任何永久的方式生成的,它只是显示特定信息所需的参数的文本表示。在本例中,您的快捷码将提取ID参数,并通过其ID选择正确的帖子。

结束

相关推荐

基于Metabox选择在主页上显示自定义帖子

我正在尝试根据所选内容向我的主页显示帖子。我的意思是,在后端,我有一个自定义帖子,其中有一个标记为Assign to Home(分配给主页)的元框,下拉列表中有一个Yes(是)或No(否)选项。我试图做的是,当自定义帖子选择Yes(是)时,它将显示在主页上。当选择显示“否”时,将不会显示。下面的代码是我试图用来调用我的帖子的代码。帖子类型和元键都是正确的,但当我尝试显示帖子时,会得到一个数组。主页 <?php function posts_draft($meta_values) {