将Wordpress ShortCode属性值传递给模板

时间:2016-12-09 19:35:08

标签: wordpress

我编写了一个自定义帖子类型来集中管理潜在客户表单,这有一个附带的短代码,因此可以使用[lead-form id =" 574"]在页面中添加潜在客户表单 - 在此例如,574是领导形式的Id。将此添加到页面后,我会使用特定模板来登录包含潜在客户表单的页面。

我需要在模板中访问自定义帖子类型中的字段,但是为了访问它们,我首先需要引导表单的ID。我已经提供了一些屏幕截图,希望能更好地澄清一下。

在自定义帖子类型中集中管理潜在客户表单,在此示例中,574是自定义帖子的ID

enter image description here

shordcode的代码使用while( have_rows('pages', $atts['id']) ): the_row();抓取id。用于自定义帖子类型的字段是页面的转发器,其具有转发器的问题,其具有预定义选择的转发器。这些字段是使用“高级自定义字段”插件创建的。短代码基本上是循环遍历页面/问题/答案并构建短代码返回的字符串。向页面添加短代码时,我在"页面属性"中指定了一个模板。部分,所以我可以包括一些样式和JavaScript。

enter image description here

template-lead-form.php是用于" LP潜在客户表格的文件"在shortcode中构建的字符串在the_content()中输出,但是,我需要访问两个字段,我只能通过将Id传递给lead表单来获取。

enter image description here

1 个答案:

答案 0 :(得分:0)

我在post_content中搜索您的短代码并从那里获取ID。正则表达式不是我强硬的一面,但可能是这样的:

preg_match('/\[load-form [^\]]*id="([0-9]*)"\]/', $post->post_content, $res);

之后你在$ res [1]中有id。