如何使用插件输出完全定制的内容,同时仍有页眉、页脚、侧边栏等

时间:2014-01-17 作者:Leylu

我想做的是重写一些url,这些url将由插件中的类处理。当其中一个URL匹配时,我想点击一个外部api,然后输出带有api响应内容的自定义html,同时仍然具有当前活动主题的页脚/页眉/侧栏等。

几天来,我一直在测试不同的方法,似乎输出我的代码,在wordpress运行默认查询之前退出可能是一种很好的方法,但我不确定如何使用主题的页眉/页脚。

1 个回复
最合适的回答,由SO网友:sakibmoon 整理而成

Buddypress使用自定义的post类型来实现这一点。您可能不需要自定义帖子类型来完成此操作。您可以将页面用作插件的处理程序,并重写URL,以便将请求的URL重定向到该页面。

然后从插件中,可以使用动作挂钩template_redirect. 当您使用插件时,您可以这样做

add_action(\'template_redirect\', array(&$this,\'my_custom_template\'));
现在从my_custom_template 您可以检查页面id并提供与插件不同的模板或添加过滤器the_content 如果您只想更改页面的内容。

function my_custom_template(){
    if( is_page($my_handler_page_id) ){
        add_filter(\'the_content\', array(&$this, \'my_custom_content\'));
    }
}
现在,从my_custom_content 作用

function my_custom_content($content){
    $content = "<p>This is custom content</p>";
    .....
    return $content;
}
您还可以设置query_var 当重写URL以获取不同的参数并发送不同的内容时,请检查query_var 价值观

结束

相关推荐

private functions in plugins

我开发了两个插件,其中一个功能相同(相同的名称,相同的功能)。当试图激活两个插件时,Wordpress会抛出一个错误,因为它不允许我以相同的名称定义函数两次。有没有一种方法可以使这个函数只对插件私有,而不使用面向对象编程,也不简单地重命名函数?我不想使用OOP,因为我首先要学习它。此外,我不想重命名该函数,因为我可能也想在其他插件中使用它,而重命名感觉不太合适。