OptimizePress主题覆盖添加过滤器页面_模板

时间:2017-12-26 作者:Coyote6

我有一个自定义插件,运行以下功能来更改预定义页面的页面模板。它在默认2017主题上运行良好,但被OptimizePressTheme覆盖。

function _plc_page_template ($template) {
    $pages = _plc_get_custom_pages();   
    foreach ($pages as $slug => $title) {
        if (is_page ($slug) && is_file (PLC_TEMPLATES . $slug . \'.tpl.php\')) {
            $template = dirname (__FILE__) . \'/templates/\' . $slug . \'.tpl.php\';
        }
    }
    return $template;
}
add_filter (\'page_template\', \'_plc_page_template\', 99999);
该函数仍在运行并返回模板值,但不会在页面上呈现自定义模板一次。有人知道重写OptimizePress模板的方法吗?谢谢

(99999的重量值是我在OptimizePress之后试图将其发射的。)

1 个回复
SO网友:Coyote6

必须将过滤器切换到template_include 钩不知道这是否是正确的方法,但它是有效的:

function _plc_template_include ($template) {
    $pages = _plc_get_custom_pages();
    foreach ($pages as $slug => $title) {
        if (is_page ($slug) && is_file (PLC_TEMPLATES . $slug . \'.tpl.php\')) {
            ob_start();
            include PLC_TEMPLATES . $slug . \'.tpl.php\';
            $content = ob_get_clean();
            include PLC_TEMPLATES . \'content.tpl.php\';
            return;
        }
    }
    include $template;
}
add_filter (\'template_include\', \'_plc_template_include\', 99999);
我将模板的内容放在一个变量中,并将所有内容放在一个模板中,以避免每次重写页眉和页脚,但很容易就可以放:

include PLC_TEMPLATES . $slug . \'.tpl.php\';
return;
而不是ob\\U启动(&U);ob\\u get\\u clean方法。

结束

相关推荐

Upgrading themes never works

我在家里的服务器上安装了Wordpress,为我购买的域名提供服务。它运行在Debian Linux上,目前安装在/usr/share/wordpress.当我在管理面板中时,我会看到主题或插件更新的通知。因此,我将SSH连接到服务器,打开FTP守护程序,然后启动更新。以下是输出示例:Downloading install package from http://downloads.wordpress.org/plugin/akismet.3.0.0.zip… Unpacking the pack