由于我需要加载不同的内容类型的不同的Google广告管理系统代码,因此我为每种类型创建了单独的标头,并将此代码段放入index.php中以相应地加载它们:
if ( is_front_page() ) {
get_header('home') ;
}
elseif ( !is_front_page() AND is_page() ) {
get_header('page') ;
}
elseif ( is_single() ) {
get_header('article') ;
}
elseif ( is_category() ) {
get_header('category') ;
}
else {
get_header() ;
}
除类别外,所有其他功能都很好。它没有加载。它只是加载默认标题。
我在做什么错了?
非常感谢您的帮助!
答案 0 :(得分:0)
简短的答案是尝试使用is_archive()
而不是is_category()
。如果这样不起作用,则可能需要转储全局$wp_query
变量,并查看在该特定url上返回的查询类型。
同样,您可以考虑使用is_singular()
而不是is_single()
,因为is_single
仅限于帖子。
要考虑的另一点是使用&&
而不是AND
(它们与优先级是同义的。请看一下this answer,以进行更深入的了解)
最后,如果您仅加载单独的Google广告管理系统代码,则不确定您是否需要维护x
个头文件。您是否考虑过将脚本代码放入functions.php
文件中并将其加载到wp_enqueue_scripts
或wp_head
钩子上?
而不是像这样维护单独的标题:
if( is_front_page() ){
get_header( 'home' );
} else if( is_page() ){
get_header( 'page' );
} else if( is_singular() ){
get_header( 'article' );
} else if( is_archive() ){
get_header( 'category' );
} else {
get_header();
}
您可以使用相同的is_
函数将这些脚本直接放入其中,如下所示:
add_action( 'wp_head', 'load_ad_manager_scripts' );
function load_ad_manager_scripts(){
if( is_front_page() ){
echo '<script>// Home Ad Manage Code</script>';
} else if( is_page() ){
echo '<script>// Page Ad Manage Code</script>';
} else if( is_singular() ){
echo '<script>// Single Manage Code</script>';
} else if( is_archive() ){
echo '<script>// Archive Manage Code</script>';
} else {
echo '<script>// Generic Manage Code</script>';
}
}