通常,在WordPress中,页面标题显示在内容区域中。我希望页面标题出现在页眉区域。要做到这一点,我必须将其从内容页中的当前位置删除。php并将其放置在标题中。php。但内容页。php是从页面调用的。php,它在while循环中调用内容页(while ( have_posts() ) : the_post(); ...
) -- 因此,我想我也必须将其移动或复制到标题中。看起来有很多麻烦。
将标题html的一部分移动到页面内容中,这样我就不必多次运行while循环,这样会更有意义吗?
(作为一个学习工具,我正在使用WordPress重新创建一个现有的html站点,使用\\u s starter主题。)
---编辑---
感谢您的回答。非常有帮助。以下是基于您的答案的一些测试结果。给定以下代码,在标头(外部循环)中:
wp_title(): <?php wp_title(\'\', true,\'\'); ?><br>
the_title(): <?php the_title(); ?><br>
single_post_title(): <?php single_post_title(); ?><br>
$post->post_name: <?php echo \'page name: \' . $post->post_name; ?><br>
ispage? : <?php echo (is_page() ? \'yes\' : \'no\'); ?><br>
ispage(about-us) : <?php echo (is_page(\'about-us\') ? \'yes\' : \'no\'); ?><br>
ispage(About Us) : <?php echo (is_page(\'About Us\') ? \'yes\' : \'no\'); ?>
从我的“关于我们”页面查看时,我得到:
wp_title() About UsAt The Tabernacle
the_title(): About Us
single_post_title(): About Us
$post->post_name: page name: about-us
ispage? : yes
ispage(about-us) : yes
ispage(About Us) : yes
从我的主页查看时,我得到:
wp_title(): At The Tabernacle My site motto here
the_title(): Home
single_post_title(): Home
$post->post_name: page name: home
ispage? : yes
ispage(about-us) : no
ispage(About Us) : no
当从“Hello World”帖子中查看时,我得到:
wp_title(): Hello world!At The Tabernacle
the_title(): Hello world!
single_post_title(): Hello world!
$post->post_name: page name: hello-world
ispage? : no
ispage(about-us) : no
ispage(About Us) : no
结论:我可以使用\\u title()或single\\u post\\u title()(wp\\u title返回的文本比我想要的多)。我可以测试is\\U页面(…)以便在查看帖子时显示特定的页面名称。
非常感谢。
SO网友:Vishwa
虽然上述方法目前正在发挥作用,WordPress核心开发人员recommends 具体如下:
从4.1和215开始,建议主题显示标题的方式是添加如下主题支持:-Konstantin Obenland
您可以在主题的函数中添加此行。php文件after_setup_theme. 或
从同一页,
从4.1和215开始,建议主题显示标题的方式是添加如下主题支持:
function theme_slug_setup() {
add_theme_support( \'title-tag\' );
}
add_action( \'after_setup_theme\', \'theme_slug_setup\' );
应在after\\u setup\\u主题或init操作上添加支持,但不得晚于该主题或init操作。它不接受任何进一步的论点。
这样做的目的是,让WordPress在页眉中选择页面标题,而不在页眉中使用硬编码标记。php文件。
标题将按以下格式显示。
Page Title - Site Title