首页 > 解决方案 > 根据条件参数过滤 Wordpress 中的帖子

问题描述

整个前端,并将所选类别从菜单传递到后端正在工作。

使用参数(类别 ID)作为过滤器不起作用。

显示的表格中的每个项目都是一个类别。结果是帖子。

// cats brand |  cats type     |  cats can not be
//----------------------------------------
//  1 dell    | 15 pc          |  40 broken 
//  2 ibm     | 16 smartphone  |  41 used 
//  3 samsung | 17 monitor     |  42 remanufactured
//  4 hp      | 18 printer     

我需要返回的是这个例子工作:

-> 来自戴尔或惠普类别的帖子

-> 也属于个人电脑或显示器类别

-> 不属于损坏类别

$args = array(                   
   'category_name' => 'dell,hp',
   'category__in' => '15,17', 
   'category__not_in' => '40' 
    );
    $query = new WP_Query( $args );
?>

<?php if( $query->have_posts() ) : while( $query->have_posts() ) : $query->the_post();  
    echo "--------------------<br>";
    echo "<br>" . the_title();
    echo "<br>" . the_category();
    endwhile; 
          else:
        ?>
        <p>no results found.</p>
        <?php
        endif; 
        wp_reset_postdata();
?>

标签: phpmysqlwordpressmysqli

解决方案


试试这个代码,

$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$cat = ( isset( $_GET['category_select'] ) ) ? $_GET['category_select'] : 1;
$args = array (
    'cat'            => $cat,
    'posts_per_page' => 10,
    'paged'          => $paged
);
$query = new WP_Query( $args );

if( $query->have_posts() ) : while( $query->have_posts() ) : $query->the_post();  
    echo "--------------------<br>";
    echo "<br>" . the_title();
    echo "<br>" . the_category();
    endwhile; 
          else:
        ?>
        <p>no results found.</p>
        <?php
        endif; 
        wp_reset_postdata();?>


推荐阅读