自动生成短代码是我看到许多插件作者使用的一种技术,但不幸的是,我还没有遇到一个详细介绍这个主题的教程,所以我希望这个社区的人能帮助我清楚地理解它,因为我正在努力在自己的插件中实现它。
我所说的自动化过程是这样的:在用户在插件的自定义post类型元框中选择/输入参数后,他或她保存信息,并立即在自定义post列中生成并输出一个快捷码(其他人也会显示一条包含shortocde的消息,用户只需将其复制并粘贴到他或她想要使用它的任何地方)。
例如,在显示图书信息的插件中,用户输入图书名称、ISBN编号、所属类别等。键入所有这些详细信息后,在执行保存/发布操作后会自动生成一个短代码“[图书id=“1”]”。键入另一本书的详细信息也会导致相同的操作,只更改ID,即生成“[书ID=“2”]”
我的问题是如何做到这一点。更具体地说:
作者如何将保存metabox值的功能与生成快捷码的功能融合在一起在上述过程中,如何自动生成ID使用上面这本书的例子,我希望有人能清楚地向我解释“自动化过程是如何完成的”。尽管我没有给出代码示例,但我觉得上面的内容足以得到答案(此外,它有助于关注实际问题)。然而,如果您确实需要一些东西,那么我将编写一个示例:-)
作为一个背景:
我知道如何创建自定义帖子类型,我知道如何为自定义帖子类型创建自定义列,我知道如何将值输出到这些自定义列中,我了解如何从元框保存自定义值,我知道如何创建短代码(包括带参数的短代码)。现在的问题是,我必须在前端手动键入短代码(包括参数),这是我想要自动化的过程(即自动生成短代码并将其放置在自定义列的某个位置,用户只需将粘贴复制到他/她希望输出显示的任何位置)
最合适的回答,由SO网友:Evan Van Slooten 整理而成
我对你的问题有点困惑。如果您知道如何使用属性创建短代码,那么我认为您的问题的答案就是简单地使用预定义的正确属性输出文本。
例如,只需在自定义列中为适当的参数添加文本,例如echo“[book id=”.$post->id“]”。短代码不是以任何永久的方式生成的,它只是显示特定信息所需的参数的文本表示。在本例中,您的快捷码将提取ID参数,并通过其ID选择正确的帖子。