Car*_*n H 2 php wordpress wordpress-theming
我需要require_once主题中 lib 文件夹中的 php 文件,但仅限于登录页面(也是博客/帖子索引页面)。
当我将require_once代码单独添加到functions.php时,它工作正常,但也会在我需要阻止的所有页面和单个帖子上执行。
当我添加以下条件查询标签时,它们似乎被忽略,并且该文件不包含在主页上。
if ( is_front_page() && is_home() ) {
require_once 'lib/example.php';
}
Run Code Online (Sandbox Code Playgroud)
我缺少什么以及推荐的方法是什么?
注意:这必须添加到主题的functions.php 文件中。
如果您的代码包含在functions.php 的主体中,则它将无法正常工作,因为它在一切准备就绪is_home或is_front_page工作之前就已加载。您需要挂钩之后发生的 WordPress 操作之一。
以下代码将挂钩到wp操作中,其中条件操作将起作用:
// create a function to do the conditional check and include the files
function include_files_homepage_only() {
if ( is_front_page() && is_home() ) {
require_once 'lib/example.php';
}
}
// hook into the wp action to call our function
add_action('wp', 'include_files_homepage_only');
Run Code Online (Sandbox Code Playgroud)
笔记:
is_front_page和is_home。如果您曾经更改过 WP 管理设置中的首页或帖子页面,那么使用这两项检查可能会破坏您的预期功能。参考:Wordpress 条件标签法典:
警告:您只能在 WordPress 中的 posts_selection操作挂钩之后使用条件查询标记(wp 操作挂钩是您可以使用这些条件的第一个)。对于主题,这意味着如果您在functions.php 的主体中(即在函数之外)使用条件标记,则它永远无法正常工作。