我需要在我的主题中从lib文件夹中require_once
一个php文件,但只能在登录页面中,这也是博客/帖子索引页面。
当我自己将require_once
代码添加到functions.php时它工作正常,但也会在我需要阻止的所有页面和单个帖子上执行。
当我添加以下条件查询标记时,它们似乎被忽略,并且该文件未包含在主页中。
if ( is_front_page() && is_home() ) {
require_once 'lib/example.php';
}
我缺少什么以及建议的方法是什么?
注意:必须将其添加到主题的functions.php文件中。
答案 0 :(得分:3)
如果代码包含在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');
注意:
is_front_page
和is_home
相同。如果您更改了WP管理设置中的首页或帖子页面,则使用这两项检查可能会破坏您的预期功能。参考:Wordpress Codex for Conditional Tags:
警告:您只能在WordPress中的posts_selection action hook之后使用条件查询标记(wp操作挂钩是您可以使用这些条件的第一个)。对于主题,这意味着如果您在functions.php的主体中使用条件标记,即在函数之外,它将永远不会正常工作。
答案 1 :(得分:0)
您需要更换&&与||
org.apache.spark.ml
答案 2 :(得分:0)
使用
if ( is_front_page()) {
require_once 'lib/example.php';
}
OR
if (is_home() ) {
require_once 'lib/example.php';
}
你不需要两者。 is_front_page() ---检查是否是您网站的索引页 is_home() ---检查这是否是在设置中选择的博客页面(如果未在设置中选择,则无法工作)
答案 3 :(得分:-1)
在wp_head();
if ( is_front_page() && is_home() ) {
require_once( get_stylesheet_directory() . '/lib/example.php' );
}