GET_POST_META字段不会显示在帖子页面上

时间:2014-06-28 作者:jackobein

我是新来的,而且是新来的!我一直在努力(如此,如此努力……如此努力)创建我的网站,在偶尔的帮助下,我创建了一个外观和感觉,我喜欢在标题下为我的横幅和背景使用一些自定义的get\\u post\\u元字段。php。

<div id="page" class="hfeed site">
<?php do_action( \'before\' ); ?>
<?php
$banner = get_post_meta($post->ID, \'banner\', true);
if (is_front_page() || $banner == \'\') { ?>
    <header id="masthead" class="site-header" role="banner">
<?php
} else {
?>
    <header id="masthead" class="site-header" role="banner" style="background-image: url(<?=$banner?>); background-size:cover">
<?php } ?> 
但是我真的被这个问题难住了,没有一个出现在我的博客页面上,这是一个非常重要的页面;它只显示站点的一般标题内容,与首页相同。我已经做了充分的研究,了解到这是因为我将博客页面设置为帖子页面(带有静态主页),所以它没有引用相同的标题。php内容就像页面一样,而是“主页模板”,这是一个索引帖子的模板,因此我的/博客页面不再有页面ID,也不包含在<div id="page"> 正在为我的自定义字段引用的。那么,如何让这个帖子索引模板引用与我的站点页面相同的横幅代码呢?此页上的解决方案--Custom fields won't display on my blog page --似乎也适合我的问题,但我不知道如何以及在哪里使用get_option( \'page_for_posts\' ) 我自己的代码!

3 个回复
SO网友:Bindiya Patoliya

Use it like this :

<div id="page" class="hfeed site">
<?php do_action( \'before\' ); ?>
<?php
      $page_id = ( \'page\' == get_option( \'show_on_front\' ) ? get_option( \'page_for_posts\' ) : get_the_ID );

      $banner = get_post_meta( $page_id, \'banner\', true ); 

    if (is_front_page() || $banner == \'\') { ?>
      <header id="masthead" class="site-header" role="banner">
  <?php
   } else {
   ?>
     <header id="masthead" class="site-header" role="banner" style="background-image: url(<?=$banner?>); background-size:cover">
  <?php } ?> 
SO网友:mggluscevic

我也有同样的问题,这对我很有效:

$page_id = ( \'page\' == get_option( \'show_on_front\' ) ? get_option( \'page_for_posts\' ) : $post->ID );
$banner = get_post_meta($page_id, \'banner\', true);

SO网友:Ankush Vaish

For post/blog page

$posts_page = get_option( \'page_for_posts\' );

$banner = get_metadata(\'post\', $posts_page, \'banner\')[0];


<header id="masthead" class="site-header" role="banner" style="background-image: url(<?=$banner?>); background-size:cover">
结束