我猜这段代码是直接从插件的函数运行的。php,表示您正在评估is_front_page()
和is_archive()
加载插件时。这还为时过早,因为还没有初始化足够的状态来知道你在哪个页面上。
要解决此问题,您需要:
将逻辑移到say\\u hello函数中,并在呈现页眉或页脚时检查is\\u首页或is\\u存档:
function say_hello_in_header() {
// Echo in wp_head on the front page
if ( is_front_page() ) {
echo \'<p>Hello!</p>\';
}
}
add_action( \'wp_head\', \'say_hello_in_header\' );
function say_hello_in_footer() {
// Echo in wp_footer on the archive
if ( is_archive() ) {
echo \'<p>Hello!</p>\';
}
}
add_action( \'wp_footer\', \'say_hello_in_footer\' );
- 或在设置完所有状态后但呈现页眉和页脚之前选择要挂接的操作,例如wp\\u enqueue\\u脚本,并在此处执行测试和页眉和页脚操作:
function enqueue_say_hellos() {
// Echo in wp_head on the front page
if ( is_front_page() ) {
add_action( \'wp_head\', \'say_hello\' );
}
// Echo in wp_footer on the archive
if ( is_archive() ) {
add_action( \'wp_footer\', \'say_hello\' );
}
}
add_action( \'wp_enqueue_scripts\', \'enqueue_say_hellos\' );
综上所述,请注意wp\\u head不是向页面添加HTML的正确位置,因为它是从页面的<;压头(>);标记,而不是;车身(>);标签如果你在那里添加任何内容,都会出现在错误的地方。如果要修改页面上的标题,则必须编辑模板或找到其他机制。