过滤Word中的Wordpress数据

时间:2017-03-14 11:09:22

标签: php wordpress

我有以下Wordpress代码,这会产生一个属性列表。

    $args = array( 'posts_per_page' => 5, 'post_type'=> 'property');

    $myposts = get_posts( $args );

    foreach ( $myposts as $property_data ): 

        $meta = get_post_meta( $property_data->ID );

        $vdo_url = wp_get_attachment_url( $meta[fave_video_image][0] );
        $images =  wp_get_attachment_url( $meta[fave_property_images][0]);
        $city = wp_get_post_terms($property_data->ID, 'property_city');
        $type = wp_get_post_terms($property_data->ID, 'property_type');
        $status1 = wp_get_post_terms($property_data->ID, 'property_status');

        ?>
                <tr>
                    <td class="date">
                      <h5><input type="checkbox" class="propcheckbox" id="property" name="filedata[]" value="<?php echo $property_data->ID; ?>"> <?php echo $property_data->post_title; ?></h5>
                    </td>
                    <td class="hidden-xs hidden-sm">
                        <?php echo get_the_post_thumbnail( $property_data->ID ); ?>
                    </td>
                    <td>
                        <h5><?php echo $city[0]->name; ?></h5>
                    </td>
                    <td class="text-center">
                        <h5><?php echo $type[0]->name; ?></h5>
                    </td>
                    <td class="text-center">
                        <h5><?php echo $status1[0]->name ?></h5>
                    </td>
                    <td>
                        <h5><?php echo $property_data->post_date;  ?></h5>
                    </td>
                </tr>

    <?php endforeach; 

我现在只想显示property_status不是&#34; verkauft&#34;的属性。 property_status位于wp_terms表中。

我需要添加/更改什么?

2 个答案:

答案 0 :(得分:1)

您可以在查询级别执行此操作:

$args = array( 
 'posts_per_page' => 5, 
 'post_type'=> 'property',
 'tax_query' => array(
    array(
        'taxonomy' => 'property_status',
        'field'    => 'slug',
        'terms'    => array( 'verkauft' ),
        'operator' => 'NOT IN'
    ),
  ),
);

$myposts = get_posts( $args );
...

这应该可以获得所有没有该状态的属性。您可以对其进行测试,看看是否正确。

在此处阅读有关分类法查询的更多信息:https://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

答案 1 :(得分:0)

最简单的选择是在php中过滤并在满足条件时跳过输出:

foreach ( $myposts as $property_data ): 
    //get the status 1st
    $status1 = wp_get_post_terms($property_data->ID, 'property_status');
    //if the status matches, skip the rest of this loop iteration
    if($status1=='verkauft') continue;

    $meta = get_post_meta( $property_data->ID );

    //the rest of your code