【问题标题】:WP_Query: Modify arrayWP_Query:修改数组
【发布时间】:2014-06-14 05:19:59
【问题描述】:

我设法集成了一个自定义分类插件:

-根据选择的类别过滤五线谱。

我希望它首先显示那个部门,然后再显示下面的其他部门而不是那个部门(现在的情况)。

这里是链接: 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' 
    )
)

);

【问题讨论】:

标签: php wordpress loops filter


【解决方案1】:

我会进行 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

【讨论】:

  • 我已经更新了我的代码,尝试进行第二次查询,但我仍在苦苦挣扎……我的 php 有点生疏了。我认为它类似于: $args2 = array( 'post_type' => 'cripps_staff', 'post_status' => 'publish' ); $query2 = new WP_Query($args2); // 第二个循环 while( $query2->have_posts() ) { $query2->next_post(); echo '
    '; ...等
  • 数组中是不是这样的? "array('post__not_in' => get_option('sticky_posts'); );"
  • 我认为你应该用部门值过滤你的第二个数组......就像如果我选择会计比它会显示来自第一个数组而不是第二个数组的 2 个结果只需使用查找部门标签 ==会计如果它说是真的而不是将它添加到你的第二个循环中,否则添加它
  • @Vivek 您能否提供我应该放入数组中的代码值?将不胜感激,因为这里没有人(甚至是开发负责人!)可以提供帮助,仅此一点: $args2 = array( 'post_type' => 'cripps_staff', 'posts_per_page' => '300',--- -----?
  • @ArchieButler 我不知道 wordpress 是如何工作的,我只知道逻辑只有当你在 wordpress 或 cms 之外需要它时,我才能为你提供
猜你喜欢
相关资源
最近更新 更多
热门标签