WP_Query:修改数组

时间:2014-04-28 15:18:37

标签: php wordpress loops filter

我设法整合了一个自定义分类法插件:

- 根据选择的类别对工作人员进行过滤。

我希望它首先显示该部门,然后显示其他部门而不是该部门本身(现在如何)。

这是链接: http://crippslawtest.co.uk/people/

这是我的Wordpress循环:

        <div class="staffwrapper">
    <?php
    $args = array( 'post_type' => 'cripps_staff', 'posts_per_page' => 300 );
    $loop = new WP_Query( $args );
    while ( $loop->have_posts() ) : $loop->the_post();

    echo '<div class="col-md-3 spacetop">';
    echo '<a href="'.get_permalink().'">';
    echo '<img src="';
    echo get_post_meta($post->ID,'image',true);
    echo '">';
    echo '</a>';
    echo '<h2 class="staffname">';
    echo get_post_meta($post->ID,'staff_name',true);
    echo '</h2>';
    echo '<h2 class="staffrole">';
    echo get_post_meta($post->ID,'staff_role',true);
    echo '</h2>';
    echo '<h2 class="staffnumber">';
    echo get_post_meta($post->ID,'staff_telephone_number',true);
    echo '</h2>';
    echo '<h2 class="staffemail">';
    echo get_post_meta($post->ID,'staff_email_address',true);
    echo '</h2>';
    echo '</div>';
    endwhile;
    ?>
    </div><!--End of staff wrapper-->

在结果页面(search-people.php)上,我使用此链接中的信息添加了第二个WP查询: http://codex.wordpress.org/Class_Reference/WP_Query#Methods_and_Properties

这是为了显示所有其他可用的帖子。我需要$ args2的数组:“显示我的员工自定义帖子中的所有其他帖子”

这是我的尝试:

                    //2nd loop
    wp_reset_postdata();
    $args2 = array( 
            'post_type' => 'cripps_staff',
            'posts_per_page' => '300'

    );
    $query2 = new WP_Query( $args2 );
    while( $query2->have_posts() ) {
    $query2->next_post();
    echo '<div class="col-md-3 spacetop">';
    echo '<a href="'.get_permalink().'">';
    echo '<img src="';
    echo get_post_meta($post->ID,'image',true);
    echo '">';
    echo '</a>';
    echo '<h2 class="staffname">';
    echo get_post_meta($post->ID,'staff_name',true);
    echo '</h2>';
    echo '<h2 class="staffrole">';
    echo get_post_meta($post->ID,'staff_role',true);
    echo '</h2>';
    echo '<h2 class="staffnumber">';
    echo get_post_meta($post->ID,'staff_telephone_number',true);
    echo '</h2>';
    echo '<h2 class="staffemail">';
    echo get_post_meta($post->ID,'staff_email_address',true);
    echo '</h2>';
    echo '</div>';

    wp_reset_postdata();
    } 

这是在我的结果页面上创建重复,同一帖子重复6次!我已经花了很长时间才能做到这一点,请帮助:S它应该显示“来自Cripps_Staff的所有其他帖子”

经过数小时的研究,我知道这与在我的search-people.php中添加一个双数组有关,就像:

        $args2 = array( 
            'post_type' => 'cripps_staff',
            'tax_query' => array(
            'relation' => 'AND',
            array(
        'taxonomy' => 'Department',
        'terms' => array( 'accounting', 'Corporate' )
    ),
            array(
        'taxonomy' => 'role',
        'field' => 'id',
        'terms' => array( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 ),
        'operator' => 'IN'
    )
)
    );

但我不能为我的生活找出如何正确组织它,任何想法?在那里有任何Wordpress福音传教士吗?

我试过这个,非常接近!!!什么是检索?

    $args2 = array( 
        'post_type' => 'cripps_staff',
        'tax_query'          => array(
    array(
        'taxonomy' => 'Department',   
        'operator' => 'NOT IN' 
    )
)

);

1 个答案:

答案 0 :(得分:2)

我会进行 2次查询,一次针对当前部门,另一次针对其他部门(不包括当前部门)。

或者,由于$loop是包含所有查询结果的对象,因此您可以从那里提取和删除当前部门。

当然,在Codex中,您可以找到有关如何过滤查询的所有详细信息: http://codex.wordpress.org/Class_Reference/WP_Query

此外,我建议您不要重复get_post_meta而是使用get_post_customhttps://codex.wordpress.org/Function_Reference/get_post_custom