我正在编写一个插件来执行一些特定的业务逻辑-为经过身份验证的用户编辑记录,等等。
而不是像表单处理插件那样使用模板标记中的内容。我创建了一个重写do重定向,如:
/mylisting/909 ->/wp-content/themes/myplugin/edit.php?id=909
这似乎是有道理的,因为我将非常特定的逻辑保留给了一个插件。
问题是,我想在插件文件中使用我的主题,因为它们将输出到站点的前端,因此我希望它们具有相同的外观和感觉。
所以我尝试了get\\u header();包括(“../mytheme/header.php”)
以及包括wp负载。php
。。。所有这些都不起作用(我遇到致命错误)
有什么帮助吗?
最合适的回答,由SO网友:fuxia 整理而成
我创建了一个重写do重定向,如:
/mylisting/909 ->/wp-content/themes/myplugin/edit.php?id=909
这似乎是有道理的,因为我将非常特定的逻辑保留给了一个插件。
有一种更好的方法:Create an endpoint, 在新URL的回调处理程序中使用您的代码。您可以在此处免费获得整个主题环境:get_header()
, 侧栏、菜单等不要忘记调用exit;
在端点结束时,Othwise WordPress将再次使用主题文件。:)
插件URI永远不是编辑或创建内容的好地址:它可能位于another domain 如果Cookie可用,并且没有用户登录。
SO网友:Steve
问题是,我想在我的插件文件中使用我的主题,因为它们将在网站前端输出,因此我希望它们具有相同的外观和感觉。
你已经有了答案。您试图围绕插件包装WordPress及其主题,而不是在设计的操作模式下工作。
如果你已经有了插件,为什么不简单地编写一个短代码处理函数来输出你的页面呢?这样你就拥有了WordPress的所有功能,你的主题的外观和感觉;但您也遵循WordPress标准和惯例。
有关编写插件的详细介绍,请参阅WordPress Codex, 它在底部有指向教程的链接。