如何检查是否有相同标签的帖子

时间:2015-07-18 作者:Vandervals

我有这个代码,但我不能用类删除divotrasObras

<?php
$test = "";
$posttags = get_the_tags();
if ($posttags) {
    foreach($posttags as $tag) {
        $test .= \',\' . $tag->name; 
    }
}
$test = substr($test, 1);
query_posts(\'tag=\'.$test.\'&showposts=-1\');
if(have_posts()){
?>
<div class="otrasObras">
    <h3>Contenido relacionado:</h3>
    <ul>
        <?php
        while (have_posts()) : the_post();
        if($post->ID != $idPost):
            ?>
        <li>
            <a href="<?php the_permalink(); ?>"  title="Ver la obra <?php the_title(); ?>">
                <h4><?php the_title(); ?></h4>
            </a>
        </li>
        <?php
        endif;
        endwhile;
        wp_reset_query();
        ?>
    </ul>
</div>
<?php } ?>
我在这里读到一些关于这方面的信息http://codex.wordpress.org/Function_Reference/WP_Query 但他们使用的是对象语法。

编辑:.otrasObras 是一个我只想在有内容时才显示的模块,并且内容是具有相同标记的其他帖子,因此如果没有更多具有该标记的帖子,我不希望它通过if(have\\u posts())条件,但这似乎不起作用,因为它总是被打印出来

1 个回复
SO网友:terminator

此代码在单循环中。php,对吗?如果是这样的话,那么请尝试一下这段代码,它应该可以工作。您的代码似乎存在问题,您正在使用showpost, 相反,您应该使用posts_per_page

此外,我看到的代码片段如下

`$test = ""; 

$test .= \',\' . $tag->name; 

$test = substr($test, 1);`
我似乎找不到它的用处。

然后我看到了这个if($post->ID != $idPost)

$idPost似乎是单个帖子的id,您最初会得到它的标签,对吗?

那么这就是我将尝试解决这个问题的方法。

  <?php
$posttags = get_the_tags();
if ($posttags) :
?>
    <div class="otrasObras">
      <h3>Contenido relacionado:</h3>
      <ul>
<?php    foreach($posttags as $tag) :        
        $my_args= array(\'tag_id\'=>$tag->term_id,
                        \'posts_per_page\'=>2,   
                        );
        $myloop= new WP_Query($my_args); 

        if($myloop->have_posts()): 

            if($myloop->have_posts()):
?>

                    <?php
                    while ($myloop->have_posts()) : $myloop->the_post();                    
                    if(($myloop->post->ID) == $idPost)continue;
                    ?>

                    <li>
                        <a href="<?php the_permalink(); ?>"  title="Ver la obra <?php the_title(); ?>">
                            <h4><?php the_title(); ?></h4>
                        </a>
                    </li>
                    <?php
                    break;                    
                    endwhile;
                    wp_reset_query();
                    ?>

<?php
            endif;
        endif;
    endforeach;
?>
     </ul>
            </div>    
<?php
endif;
?>

结束

相关推荐

在Posts2Posts的“parse_Query”或“PRE_GET_POST”中使用WP_QUERY

UPDATE: 钩子正在使用“经典”Wordpress过滤器(如post__in), 所以这可能是Posts2Posts的问题。如果有人有任何想法,我仍在寻求建议。ORIGINAL POST我正在尝试在归档页面中按问题编号显示所有帖子。问题是一种自定义的帖子类型(与post2post链接,这就是我使用parse_query 而不是pre_get_post)<?php function categories_by_issue ($query) { if (!