在评论循环中获取帖子ID

时间:2015-11-22 作者:730wavy

我的author.php 页我正在尝试获取帖子id,以便我可以回显评论所属帖子的永久链接。还可以回显一些post meta自定义字段。

这就是我的循环现在的样子-

<?php
$object = get_queried_object();
$authorID = get_queried_object()->ID;
$author_email = get_the_author_meta( \'user_email\', $authorID );
$postid = get_queried_object()->post->ID;
$args = array(
    \'user_id\' => $authorID,
    \'post_id\' => $postid,
); 

// The Query
$comments_query = new WP_Comment_Query;
$comments = $comments_query->query( $args );

// Comment Loop
if ( $comments ) {
    foreach ( $comments as $comment ) { ?>
我试着在这里面放置一个普通的post循环,但事情变得很奇怪。我需要post meta的部分是--

<div class="full-divs">
    <strong>
        <a href="<?php echo get_permalink(); ?>">
            View 
            <?php 
                $property_address = get_post_meta( 
                    get_the_ID(),
                    \'imic_property_site_address\',
                    true
                ); 
                echo $property_address; 
            ?>
         </a>
     </strong>
 </div>
我做错了什么?

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

请注意,它可能更易于使用get_comments() 此处,因为其定义为:

function get_comments( $args = \'\' ) {
    $query = new WP_Comment_Query;
    return $query->query( $args );
}
如果需要注释url,请在foreach 注释循环,您可以使用:

$comment_url =  esc_url( get_comment_link( $comment ) );
您还可以从$comment 对象具有:

$post_id = $comment->comment_post_ID;
然后,您可以使用它来检索自定义post meta:

$property_address = get_post_meta( $post_id ,\'imic_property_site_address\',true);
获取相应的post permalink

$post_url = esc_url( get_permalink( $post_id ) );

SO网友:Pieter Goosen

没有$post 中的属性get_queried_object(). get_queried_object() 查看“作者存档”页面时,返回有关当前作者的信息。你可以做一个var_dump() 检查什么get_queried_object() 回来

var_dump( get_queried_object() );
这就是代码失败的原因。我真的不知道你需要在这里实现什么,但任何帖子信息都可以通过使用主查询对象访问

  • $wp_query->posts 返回post对象的数组。这是将由循环显示的帖子

  • $wp_query->post 返回循环的第一个post对象,与$post 循环之前

    我想这就是你想要的

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请