【发布时间】:2015-08-29 17:52:38
【问题描述】:
我是 Wordpress 的新手,正在研究我的第一个主题。该主题将与一个插件大量结合。我想知道如何在不触及插件本身的情况下更改主题 function.php 中的一些插件设置。
我已经尝试在互联网上查找它,但没有找到任何关于我的问题的具体答案。
我正在使用什么:
Wordpress 4.2, Justimmo api plugin
问题:
我正在尝试弄清楚如何在我的主题 function.php 中将插件模板文件重定向/替换为我的主题中的模板文件。
当前插件文件夹中有模板文件以及它们将如何在网站上呈现。我会编写自己的模板文件,确保它看起来像我的主题并将其替换为插件模板文件。
如果我直接在插件文件夹中编辑模板文件,只要有更新,它们就会被覆盖。 我觉得不对。
上网查了一下,觉得add_filter可以实现,但不完全确定如何实现。
插件
在 Github 上: https://github.com/justimmo/wordpress-plugin/blob/master/justimmo.php
在原始插件中有一行(indexPage() 为第 240 行,getIndexUrl() 为第 328 行):
class JiApiWpPlugin
{
function indexPage()
{
include(JI_API_WP_PLUGIN_DIR . '/templates/index.php');
}
function getIndexUrl()
{
return $this->getUrlPrefix().'ji_plugin=search';
}
}
它规定了可以找到模板文件之一的位置,并提供了插件的永久链接。
我想要什么
我想添加一个过滤器来从我的主题中获取模板文件,并重写模板文件的路径。
如果有一种简单的方法可以添加一个钩子,它会覆盖它,太好了。
我还发现我可以用add_filter 做一些模板替换。
试过了:
add_filter( 'template_include', 'gulz_justimmo_page_template' );
function gulz_justimmo_page_template( $page_template )
{
if ( is_page( 'ji_plugin' ) ) {
$page_template = dirname( __FILE__ ) . '/justimmotemp/justimmo-index.php';
}
return $page_template;
}
但我不完全确定如何检查插件永久链接页面是否已激活。
我觉得用户用他们主题中的文件覆盖或重定向插件模板文件应该是一件简单的事情,但我想不通。
我将不胜感激所有的帮助和建议。
【问题讨论】:
标签: templates wordpress custom-theme