自定义字段不会显示在我的博客页面上

时间:2013-03-25 作者:sharkers

我创建了一个名为“页面描述”的自定义字段,用于为wordpress站点的每个静态页面创建自定义标题。我使用代码:

<?php echo get_post_meta(get_the_ID(),\'Page Description\',true); ?>
在我的标题中。php。

它显示在除我的博客页面之外的所有页面中。有人能帮我弄清楚吗?谢谢

如果有帮助,您可以在此处查看网站。www.tenspeedgreens.com

2 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

尝试使用:

<?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.phpindex.php (in that order, per the Template Hierarchy), 呈现博客文章索引。WordPress将永远不会使用page.php 或任何自定义页面模板来显示博客文章索引

  • 中的任何一个home.phpindex.php, WordPress不引用指定用于显示博客文章索引的页面IDget_option( \'page_for_posts\' ), 它返回指定用于显示博客文章索引的页面的ID
  • 注意:由于您已将此代码放入header.php, 它将输出到每个模板文件中;因此,您需要添加一些故障保护。

    编辑故障保险示例:

    要仅在博客帖子索引中显示,请将整个内容包含在:

    if ( is_home() ) {}
    
    要在静态页面和博客帖子索引上显示,请将整个内容包装在

    if ( is_home() || is_page() ) {}
    

    SO网友:montrealist

    嗯,你的博客页面不是一个特定的帖子/页面,而是一个template 它填充帖子列表,因此,它不能有任何与之关联的自定义字段。

    您到底在哪里输入了您希望显示在该页面上的自定义字段值?

    Edit: 您的描述位于标题中,因此您可以简单地:

    创建一个名为“博客”的标准页面。然后转到wp-admin -> Settings -> Reading, 并将“Posts page”值更改为“Blog”页面。您可能需要调整菜单以反映此更改。

    为您的博客页面创建自定义模板。它应该是从index.phpcontent.php, 如果您的主题与“二十一二”主题相似。如果不是,那么你需要调查哪个模板负责填充你的帖子列表。食品法典委员会many useful guides, 在这种情况下,对您最有用的可能是Pages.

  • 从#1编辑您的博客页面,使其使用#2的新模板(Edit Page -> Page Attributes -> Template 下拉列表)。

  • 结束

    相关推荐