搜索.php从第一个帖子获取元数据

时间:2012-08-22 作者:Paul

我把这个放在头上了。php输入<head> 第节:

$page_color = get_post_meta($post->ID, \'page_color\', true);
它工作得很好,因为它是正确的page_color 对于帖子和页面,但当我执行一些搜索和搜索时。php运行时,偶尔会page_color 它找到的第一个帖子。这是搜索的内容。php:

<?php
  if( have_posts() ) : 
    while (have_posts()) : the_post(); ?>
        <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
        <?php the_excerpt(); ?>
    <?php endwhile; ?>
  <?php else : ?>
        Nothing found.
    <?php endif; ?>
你知道为什么吗?

1 个回复
最合适的回答,由SO网友:Milo 整理而成

我不认为这只是偶然的,它总是会在搜索结果页面、分类页面、归档页面上为您提供第一篇帖子的帖子元,任何有多篇帖子的页面,因为$post global将始终填充任何主查询结果的第一个帖子。

EDIT-

if ( is_singular() ) :
    // we are viewing a single post or page
    $page_color = get_post_meta($post->ID, \'page_color\', true);
else :
    // not a single post or page, use a default color
    $page_color = \'blue\';
endif;

结束