尝试使用:
<?php
// Determine context
$page_id = ( \'page\' == get_option( \'show_on_front\' ) ? get_option( \'page_for_posts\' ) : get_the_ID );
// Echo post meta for $page_id
echo get_post_meta( $page_id, \'Page Description\', true );
?>
发生了什么:
您使用静态页面作为首页,并使用静态页面显示博客帖子索引您已将帖子自定义元数据(即自定义字段)添加到静态页面,然后指定该页面显示博客帖子索引在该场景中,WordPress使用home.php
或index.php
(in that order, per the Template Hierarchy), 呈现博客文章索引。WordPress将永远不会使用page.php
或任何自定义页面模板来显示博客文章索引
中的任何一个home.php
或index.php
, WordPress不引用指定用于显示博客文章索引的页面ID因此,如果要引用与该页面ID关联的数据,需要直接查询它get_option( \'page_for_posts\' )
, 它返回指定用于显示博客文章索引的页面的ID注意:由于您已将此代码放入
header.php
, 它将输出到每个模板文件中;因此,您需要添加一些故障保护。
编辑故障保险示例:
要仅在博客帖子索引中显示,请将整个内容包含在:
if ( is_home() ) {}
要在静态页面和博客帖子索引上显示,请将整个内容包装在
if ( is_home() || is_page() ) {}