我想创建一个表单,我可以使用短代码插入到我的网站中。
如果我可以在一个单独的文件中创建HTML部分,然后插入一个PHP短代码(将页面的逻辑与生成短代码的机制分离),那就太好了。
我该怎么做?
--更新--
这就是我所做的:我有两个文件。一个叫做“profiletemplate”。php”和一个名为“scodes”的。它们都是我用init为我的站点制作的插件的一部分。初始化它们的php。以下是他们的内容:
init.php
<?php
require_once(dirname(__FILE__).\'/pages/scodes.php\');
?>
scodes.php
function jf_testcode() {
include dirname(__FILE__) . \'profiletemplate.php\';
}
add_shortcode(\'testfield\', \'jf_testcode\');
profiletemplate.php
<?php // Template for my form shortcode ?>
<form>
Testing
</form>
然后,我在我的站点的页面上使用[测试字段]短代码。
更新2,使此方法正常工作,但它不会在调用短代码的地方插入HTML。相反,它只是在页面顶部插入内容(就像我在函数中说“echo”Testing而不是“return”Testing”)。
最合适的回答,由SO网友:helgatheviking 整理而成
在我之前的评论中,我忘记了一点,即短代码返回内容,这两个建议include
还有我的选择get_template_part
将直接输出内容(这是您看到的内容,内容显示在页面顶部,而不是调用快捷码的位置)。为了抵消这一点,我们必须使用output buffering.
在函数中定义短代码。php(或您网站的site-specific functions 文件)。
function my_form_shortcode() {
ob_start();
get_template_part(\'my_form_template\');
return ob_get_clean();
}
add_shortcode( \'my_form_shortcode\', \'my_form_shortcode\' );
然后在主题文件夹中,需要一个名为
my_form_template.php
它将加载到您放置快捷码的任何位置。