我为此挣扎了一整天,现在我在这里。。。
我有一个包含php的联系人表单。目前,我的主题索引中有这段代码。php包括:
if ( is_page(\'contact\') ) {
include("../contact.php");
}
其呈现和功能符合预期:
http://www.derekbeck.com/1775/contact/然而,将其编辑到主题中是有问题的,因为主题升级(我每次都要硬编码),现在尤其是因为我正在为移动用户使用移动主题,他们在使用移动主题时不会看到我的联系人表单。一句话:我需要把这个放到插件中。
我知道制作插件的机制,这不是我的问题。
我的问题是:我似乎无法通过插件文件中的函数来正确地包含上述内容。
例如,我试过:
add_shortcode( \'ContactForm\', \'ContactInsert\' );
function ContactInsert() {
$file = include(ABSPATH . "../contact.php");
return $file;
}
我将短代码[联系人表单]放在测试页面的主体中,但它会呈现奇怪的结果:
http://www.derekbeck.com/1775/test/(忽略我为测试添加的“1”和“2”)
如果我做得简单
function ContactInsert() {
ob_start();
include(ABSPATH . "../contact.php");
return ob_get_clean();
}
我在页面上没有得到任何结果,只有个主题显示。
我做错了什么?
谢谢
(附言:如果我只是简单地将所有包含的contact.php粘贴到我的插件页面中,它可能会工作,但它是一个很长的文件,我有其他理由将其分开。)
最合适的回答,由SO网友:Derek W Beck 整理而成
答案可能不是(没有测试)代码的格式,而是其中复杂的形式。我已经与代码设计器合作来派生解决方案,但它对于这里来说太复杂了。如果您想知道我的联系人表单的WP插件是如何工作的,现在可以在这里找到:http://formmail-maker.com/wordpress-plugin-form-loader.php
干杯,德里克
PS:总的来说,我认为这段代码应该通过插件为simple Include工作:
function ContactInsert() {
ob_start();
include(ABSPATH . "../contact.php");
return ob_get_clean();
}