如何显示仅使用我选择的标签的项目。目前正在提取所有项目

时间:2018-03-10 15:18:39

标签: php wordpress loops tags

我试图修改一个使用一些循环和if语句的projects.php文件来根据这些标记获取项目。我需要修改下面的代码才能获取标记为 new 的项目。目前正在提取和显示所有项目。

任何帮助都会很棒。见附件代码。

由于

<div id="projects" class="clearfix">        

<?php $page_skills = get_post_meta($post->ID, "_ttrust_page_skills", true); ?>


    <?php $skill_slugs = ""; $skills = explode(",", $page_skills); ?>

    <?php if (sizeof($skills) >= 1) : // if there is more than one skill, show the filter nav?> 
        <?php $skill = $skills[0]; ?>
        <?php $s = get_term_by( 'name', trim(htmlentities($skill)), 'skill'); ?>
        <?php if($s) { $skill_slugs = $s->slug; } ?><?php endif;        

        $temp_post = $post;
        $args = array(
            'ignore_sticky_posts' => 1,
            'posts_per_page' => 200,
            'post_type' => 'project',
            'skill' => $skill_slugs
        );
        $projects = new WP_Query( $args );      

    endif; ?>




<div class="wrap">
    <div class="thumbs masonry">            
    <?php  while ($projects->have_posts()) : $projects->the_post(); ?>

        <?php
        global $p;              
        $p = "";
        $skills = get_the_terms( $post->ID, 'skill');
        if ($skills) {
           foreach ($skills as $skill) {                
              $p .= $skill->slug . " ";                     
           }
        }
        ?>      
        <?php get_template_part( 'part-project-thumb'); ?>      

    <?php endwhile; ?>
    <?php $post = $temp_post; ?>
    </div>
</div>

1 个答案:

答案 0 :(得分:0)

你应该只需要在$ args数组中添加一个字段:

$args = array(
    'ignore_sticky_posts' => 1,
    'posts_per_page' => 200,
    'post_type' => 'project',
    'skill' => $skill_slugs,
    'tag' => 'new'  // add this for the tag
    );
$projects = new WP_Query( $args );

让我知道它是否有效:D