使用PHP函数返回HTML模板页面

时间:2013-03-08 作者:William

我想创建一个表单,我可以使用短代码插入到我的网站中。

如果我可以在一个单独的文件中创建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”)。

2 个回复
最合适的回答,由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 它将加载到您放置快捷码的任何位置。

SO网友:tfrommen

将以下内容添加到functions.php:

function my_form_shortcode() {
    include dirname( __FILE__ ) . \'my_form_template.php\';
} // function my_form_shortcode
add_shortcode( \'my_form_shortcode\', \'my_form_shortcode\' );
文件my_form_template.php:

<?php // Template for my form shortcode ?>
<form ...>
    FIELDS
</form>

结束

相关推荐

使用PHP切换在Cookie中设置的样式表和标题图像

我以前没有做过很多关于cookies或Wordpress的工作,所以我觉得我在我的探索中有点过于乐观了:p我为我的网站创建了两个主题,夜晚和白天。我希望用户能够从侧边栏中启用php的文本小部件中选择他们想要的主题,然后根据他们的选择设置cookie,更改为适当的样式表(style.css用于night,默认值,style1.css用于day),并加载新的标题图像。我这里有一些功能,http://somethingoriginal.net, 然而,在Chrome中,cookie似乎并没有像我所说的那样立即设