正在将当前帖子/页面数据拉入Header.php

时间:2014-02-24 作者:Josh Mountain

我想将一些特定于文章/页面的数据(作者姓名、文章ID、发布时间等)拉入标题。要在元标记中使用的php。我很难想出最有效的方法来做这件事。我的理解是,我需要在标题中创建一个循环。php来提取此数据。如果我还不知道ID,如何为当前页面/帖子创建循环?

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

主查询实际上是在加载模板之前处理的,所以数据在标题中可用(如果使用起来不太方便的话)。

实际上,您不需要循环,get_the_ID() 应该为您提供查询对象的ID,并且大多数模板标记的版本都会返回该特定ID的结果。

循环也可以正常工作,但这么早运行并不常见。

SO网友:Shazzad

很明显,您知道当前页面/帖子id。因为加载了任何模板文件,所以查询会获取帖子、页面、术语或任何其他内容的数据。

要将信息添加到标记中,您应该使用wp_head 钩下面是一个示例-

add_action(\'wp_head\', \'wpse_wp_head\');
function wpse_wp_head(){
    // first make sure this is a single post/page
    if( !is_page() || !is_single() )
        return;

    // then get the post data
    $post = get_post();

    echo \'<meta name="post_id" value="\'. $post->ID .\'" />\';

    $author = get_user_option(\'display_name\', $post->post_author );
    echo \'<meta name="author" value="\'. esc_attr( $author ) .\'" />\';
}

SO网友:That Brazilian Guy

这就是我如何在上为作者获取元标记的方法header.php:

  <?php
    if (is_singular()) {
      $post = get_post();
      $autor_fn = get_the_author_meta(\'first_name\',$post->post_author);
      $autor_ln = get_the_author_meta(\'last_name\',$post->post_author);
      if (!empty($autor_fn) && !empty($autor_ln)) {
  ?>
        <meta name="author" content="<?php echo "$autor_fn $autor_ln"; ?>">
  <?php
      }
    }
  ?>

结束

相关推荐

Pagination on Custom Loop

我想将最新帖子的样式与自定义页面上某个类别中的所有其他帖子的样式不同。到目前为止,我有下面的代码,它正是这样做的:<?php if (have_posts()) : ?> <?php query_posts(\"cat=4&showposts=1\"); ?> <?php while (have_posts()) : the_post(); ?> (Style1)<?php the_title(); ?><