我正在使用woo主题,并尝试使用一些woo钩子来钩住索引。来自我的子主题的php文件。
我正在使用以下代码:
function content_woo_main_before() {
if (is_home() || is_front_page()) {
include(\'includes/home-news.php\');
}
};
add_action(\'woo_main_before\', \'content_woo_main_before\', 15 );
function content_woo_main_after() {
if (is_home() || is_front_page()) {
include(\'includes/home-news-after.php\');
}
};
add_action(\'woo_main_after\', \'content_woo_main_after\', 15 );
奇怪的是,第一个函数按其在主页上的加载方式加载,而第二个函数则没有。我尝试了一些事情,如更改函数的运行顺序、更改名称,以及尝试将函数包装到条件语句中。什么都没用。
我是不是做错了什么?
我发现其他一些帖子也有类似的内容is_home()
在函数中不起作用。php,因为它在我们知道是否在主页上之前就运行了,但这不能解释为什么第一个函数工作正常,而第二个函数工作不正常。
有人有什么想法吗?
UPDATE:
因此,根据我得到的反馈,我使用
get_template_part()
http://www.re-electsusanguidry.com/admin/
代码如下:
function content_woo_main_before() {
echo \'is_home1 =\' . is_home();
echo \'is_front_page1 = \' . is_front_page();
if (is_home()) {
get_template_part(\'home\', \'news\');
}
};
add_action(\'woo_main_before\', \'content_woo_main_before\', 20 );
function content_woo_main_after() {
echo \'is_home2 = \' . is_home() . \'<br />\';
echo \'is_front_page2 = \' . is_front_page();
if (is_front_page()) {
echo \'is_home3 =\' . is_home();
echo \'is_front_page3 = \' . is_front_page();
get_template_part(\'home\', \'after\');
}
};
add_action(\'woo_main_after\', \'content_woo_main_after\', 21 );
这是我不明白的。如果这两个函数都使用
is_home() || is_front_page()
, 第一个函数返回“1”,但第二个函数根本不返回任何内容。因此,“is\\u home1”返回1,“is\\u front\\u page1”返回1,因此这是真的,并且内容会加载。但是,“is\\u home2”和“is\\u front\\u page2”不返回任何内容,条件语句返回false,并且不加载内容。
我尝试了加载顺序的各种数字,但没有任何效果。我输入了一些疯狂的长数字,但仍然没有返回真值。
另一个奇怪的是,如果我去掉第一个函数(之前是woo\\u main\\u),第二个函数就会按预期工作。只有当两者都存在时,第二个才不起作用。
我似乎在网上找不到其他有这个问题的人。我不知道怎么了。
有什么想法吗?