我正在创建一个插件,需要替换它在激活时创建的两个特定页面的the_content
。
这是我的代码:
add_filter('the_content', 'emd_content');
function emd_content() {
if ( is_page('Member Directory') ) {
include dirname( __FILE__ ) . '/content-members.php';
}
elseif ( is_page('Contact Members') ) {
include dirname( __FILE__ ) . '/content-member-contact-form.php';
}
else {
the_content();
}
}
上面的代码为500 Internal Server Error
和Member Directory
以外的网页提供了Contact Members
,这些网页都正常运行。
如果我删除了else { the_content(); }
,则Member Directory
和Contact Members
正常工作,但所有其他页面都不会显示应显示the_content
的任何内容。< / p>
我还尝试将add_filter()
包裹在if(is_page('Member Directory') || is_page('Contact Members')) { }
中。 the_content
适用于其他页面,但不适用于插件创建的两个页面。
使用我的插件替换这两个页面the_content
的更好/正确方法是什么?
答案 0 :(得分:3)
您必须在函数中添加参数。在此之后,你可以改为$ content,the_content()。例如:
function emd_content($content) {
if ( is_page('Member Directory') ) {
$content = include dirname( __FILE__ ) . '/content-members.php';
}
elseif ( is_page('Contact Members') ) {
$content = include dirname( __FILE__ ) . '/content-member-contact-form.php';
}
else {
$content = $content;
}
return $content;
}