WordPress子主题模板auth_reDirect包装器

时间:2016-03-01 作者:G H

我成功地利用了Wordpress中的儿童主题。我想创建一个页面模板,只需强制登录使用此模板的页面即可。(只需添加<?php if (!is_user_logged_in()) { auth_redirect(); } ?> 到单独的模板。)将现有模板向下复制到子主题会使更新变得单调乏味,而且对于这样一个简单的调用很容易失败。但是,我找不到创建调用父模板的新模板的方法。我承认,我可能无法理解现有的呼叫,但我无法找到任何方法来做到这一点。

为每个页面设置URL筛选器不是一个可用的选项。我也无法使用Slug,因为它们已经用于其他用途。

2 个回复
最合适的回答,由SO网友:G H 整理而成

我通过创建requires\\u login的自定义字段并将其设置为“true”,然后向函数中添加以下代码,解决了当前的问题。php:

function require_login() {

    if ( get_post_meta(get_the_ID(), requires_login, true)  && ! is_user_logged_in() ) {
       auth_redirect();
    }

}

add_action(\'template_redirect\', \'require_login\');
将此标记为已回答,因为它解决了问题。然而,如果有人想展示如何继承模板,我会考虑更改答案。非常感谢@Milo为我指明了正确的方向。为无意中消失的代码技巧向@userabuser道歉。

SO网友:Adam

尝试

function maybe_auth_redirect() {

    if ( is_page_template(\'my-template.php\') && ! is_user_logged_in() ) {
       auth_redirect();
    }

}

add_action(\'template_redirect\', \'maybe_auth_redirect\');

相关推荐

WooCommerce - edit templates

我有主题,我添加了WooCommerce插件。但我想更改默认模板(添加侧栏,更改html…)。我可以将woocommerce模板添加到我的主题并进行编辑吗?例如my theme folder -woocommerce --templates ---single-product.php