这是my child主题函数的下半部分。php。
function register_my_scripts(){
if (is_shop() || is_product_category()){
wp_enqueue_style( \'shop-style\', get_stylesheet_directory_uri() .
\'/shop.css\');
}
if (is_product()){
wp_enqueue_style( \'shop-style\', get_stylesheet_directory_uri() .
\'/product.css\');
}
}
add_action( \'wp_enqueue_scripts\', \'register_my_scripts\' );
为什么,当我在同一个文件(上面)中有以下代码时,即使“if”块仍在运行(我用“echo‘something’进行了测试),但上面代码块(但下面是我的文件)中的样式队列也会停止工作回音响起了吗?
function register_my_menu() {
register_nav_menu(\'left-menu\', __(\'Left Menu\'));
register_nav_menu(\'right-menu\', __(\'Right Menu\'));
wp_enqueue_style( \'shop-style\', get_stylesheet_directory_uri() .
\'/shop.css\');
}
但当我在同一行中注释掉wp\\u enqueue\\u样式时,整个文件如下所示:
function register_my_menu() {
register_nav_menu(\'left-menu\', __(\'Left Menu\'));
register_nav_menu(\'right-menu\', __(\'Right Menu\'));
// wp_enqueue_style( \'shop-style\', get_stylesheet_directory_uri() .
\'/shop.css\');
}
add_action( \'init\', \'register_my_menu\');
function register_my_scripts(){
// wp_enqueue_style( \'shop-style\', get_stylesheet_directory_uri() .
\'/shop.css\');
if (is_shop() || is_product_category()){
wp_enqueue_style( \'shop-style\', get_stylesheet_directory_uri() .
\'/shop.css\');
}
if (is_product()){
wp_enqueue_style( \'shop-style\', get_stylesheet_directory_uri() .
\'/product.css\');
}
}
add_action( \'wp_enqueue_scripts\', \'register_my_scripts\' );
排队的人
register_my_scripts()
再次正常运行。
这是一个我从未见过的冲突,为什么WordPress没有抛出某种错误。调试这些东西太可怕了。
有没有像JavaScript的“使用严格”这样的严格版本的WordPress?
他们从不犯任何错误,这一事实令人恶心。
SO网友:Tim Elsass
这个wp_enqueue_style() 方法应用于wp_enqueue_scripts
钩子,您不应该尝试在init
钩
如果调用wp\\u enqueue\\u style()的目的init
钩子是初始化您的样式,然后您希望稍后有条件地将它们排到其他地方,然后您应该使用wp_register_style() 这样做。
对于上述代码的一些建议:
它应该用主题名作为方法名的前缀,因为它没有命名空间。
在任何可翻译字符串中包含主题名称。
将register\\u my\\u脚本重命名为enqueue,因为从技术上讲,它不是注册脚本,而是将脚本排队。
重命名商店。css以匹配您使用的句柄。这使得它在将来需要时以及在其他地方更易于参考。
我想试试这样的东西:
function sample_theme_register() {
register_nav_menu( \'left-menu\', __( \'Left Menu\', \'sample-theme\' ) );
register_nav_menu( \'right-menu\', __( \'Right Menu\', \'sample-theme\' ) );
wp_register_style( \'sample-theme-shop\', get_theme_file_uri( \'sample-theme-shop.css\' );
}
add_action( \'init\', \'sample_theme_register\' );
function sample_theme_enqueue_scripts() {
if ( is_shop() || is_product() || is_product_category() ) {
wp_enqueue_style( \'sample-theme-shop\' );
}
}
add_action( \'wp_enqueue_scripts\', \'sample_theme_enqueue_scripts\' );