在 init 上使用 Woo 条件语句
Woo Conditionals on init
我正在尝试将标题添加到面包屑上方。我的问题是为什么 WooCommerce 条件语句在 template_redirect
上工作得更好但在 init
上不起作用。例如:
/** Woo General Init **/
function woo_general_init() {
echo ( is_product() ) ? 'True' : 'False';
if( is_product() ) {
add_action( 'woocommerce_before_main_content', 'woocommerce_template_single_title', 10 );
add_action( 'woocommerce_before_main_content', 'woocommerce_template_single_excerpt', 11 );
}
}
add_action( 'init', 'woo_general_init' );
在查看单个 WooCommerce 产品时评估为 False
在我的文档顶部。在 other-hand 上,如果我将 init
更改为 template_redirect
,则条件输出 True
:
/** Woo General Init **/
function woo_general_init() {
echo ( is_product() ) ? 'True' : 'False';
if( is_product() ) {
add_action( 'woocommerce_before_main_content', 'woocommerce_template_single_title', 10 );
add_action( 'woocommerce_before_main_content', 'woocommerce_template_single_excerpt', 11 );
}
}
add_action( 'template_redirect', 'woo_general_init' );
为什么我连接到 init
时得到 "False",但连接到 template_redirect
时得到 "True"? 运行 WooCommerce 条件数据的最佳挂钩是什么?
操作 init
发生得太早,无法判断当前页面是否应显示页面。您至少要等到 template_redirect
。来自“is_page()
不在插件中工作”的参考 - https://wordpress.stackexchange.com/q/115142/26523
我正在尝试将标题添加到面包屑上方。我的问题是为什么 WooCommerce 条件语句在 template_redirect
上工作得更好但在 init
上不起作用。例如:
/** Woo General Init **/
function woo_general_init() {
echo ( is_product() ) ? 'True' : 'False';
if( is_product() ) {
add_action( 'woocommerce_before_main_content', 'woocommerce_template_single_title', 10 );
add_action( 'woocommerce_before_main_content', 'woocommerce_template_single_excerpt', 11 );
}
}
add_action( 'init', 'woo_general_init' );
在查看单个 WooCommerce 产品时评估为 False
在我的文档顶部。在 other-hand 上,如果我将 init
更改为 template_redirect
,则条件输出 True
:
/** Woo General Init **/
function woo_general_init() {
echo ( is_product() ) ? 'True' : 'False';
if( is_product() ) {
add_action( 'woocommerce_before_main_content', 'woocommerce_template_single_title', 10 );
add_action( 'woocommerce_before_main_content', 'woocommerce_template_single_excerpt', 11 );
}
}
add_action( 'template_redirect', 'woo_general_init' );
为什么我连接到 init
时得到 "False",但连接到 template_redirect
时得到 "True"? 运行 WooCommerce 条件数据的最佳挂钩是什么?
操作 init
发生得太早,无法判断当前页面是否应显示页面。您至少要等到 template_redirect
。来自“is_page()
不在插件中工作”的参考 - https://wordpress.stackexchange.com/q/115142/26523