Wordpress 如何创建筛选器以显示自定义帖子类型

Wordpress 如何创建筛选器以显示自定义帖子类型,wordpress,filter,filtering,taxonomy,Wordpress,Filter,Filtering,Taxonomy,我有一个自定义的帖子类型“projects”,还有一个概览页面,显示这些带有特色图片和帖子标题的帖子类型。我还为该帖子类型创建了自定义分类法,并将帖子分配给该分类法中的类别 我现在想要实现的是,在列出所有帖子的概览页面上,它们上面应该有一个类似于过滤器的栏,显示自定义分类类别 我现在的问题是:我需要什么WordPress功能,以便当有人点击其中一个类别时,只显示分配给该类别的帖子?我不希望该页面刷新或加载其他页面。下面是我想要实现的一个例子: 另外,我不是一个编码员。我使用Pinegrow将静态

我有一个自定义的帖子类型“projects”,还有一个概览页面,显示这些带有特色图片和帖子标题的帖子类型。我还为该帖子类型创建了自定义分类法,并将帖子分配给该分类法中的类别

我现在想要实现的是,在列出所有帖子的概览页面上,它们上面应该有一个类似于过滤器的栏,显示自定义分类类别

我现在的问题是:我需要什么WordPress功能,以便当有人点击其中一个类别时,只显示分配给该类别的帖子?我不希望该页面刷新或加载其他页面。下面是我想要实现的一个例子:

另外,我不是一个编码员。我使用Pinegrow将静态html站点转换为wordpress主题。但在Pinegrow中,我可以选择很多WP函数。这就是为什么我只需要理解上面的设置是如何工作的


非常感谢

如果您对
WP\u查询
了解更多,您可以使用
tax\u查询
,如下所示:

$args = array(
    'post_type' => 'project',
    'post_status' => 'publish',
    'tax_query' => array(
        array(
            'taxonomy' => array( 'project_cat' ), // <-- NO! Does not work.
            'field'    => 'slug',
            'terms'    => array( 'project_cat1', 'project_cat2')
        )
    )
);
$query = new WP_Query( $args );
$args=array(
“post_type”=>“project”,
“发布状态”=>“发布”,
“tax_query”=>数组(
排列(
“分类法”=>array('project_cat'),//'slug',
'terms'=>数组('project\u cat1'、'project\u cat2')
)
)
);
$query=新的WP\u查询($args);
参考:

或者,您可以简单地列出分类法术语,并简单地重定向到分类法详细信息页面,其中将自动列出各个项目

$args = array( 'hide_empty=0' );
 
$terms = get_terms( 'my_term', $args );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
    $count = count( $terms );
    $i = 0;
    $term_list = '<p class="my_term-archive">';
    foreach ( $terms as $term ) {
        $i++;
        $term_list .= '<a href="' . esc_url( get_term_link( $term ) ) . '" alt="' . esc_attr( sprintf( __( 'View all post filed under %s', 'my_localization_domain' ), $term->name ) ) . '">' . $term->name . '</a>';
        if ( $count != $i ) {
            $term_list .= ' &middot; ';
        }
        else {
            $term_list .= '</p>';
        }
    }
    echo $term_list;
}
$args=array('hide_empty=0');
$terms=get_terms('my_terms',$args);
如果(!empty($terms)&&!is_wp_error($terms)){
$count=count($terms);
$i=0;
$term_list='

'; foreach($terms作为$term){ $i++; $term_list.=''; 如果($count!=$i){ $term_list.='·;'; } 否则{ $term_list.='

'; } } echo$term_列表; }

参考资料:

Hi@Gorakh_sth,谢谢你的回答!我相信我可以在Pinegrow中添加自定义代码。那么,您提到的第一个选项,就是实现过滤器所需的全部代码?很明显,我们必须交换自定义的post类型和自定义的分类名称,但是它应该可以工作吗?我试过了,但是代码不起作用。我的理解是,这需要一个Ajaxrequest@JanaLux是的,如果您想使用ajax,您需要执行ajax请求,并且上面的WP_查询应该在ajax操作函数中。或者,您可以简单地提交表单并选择类别,然后将其传递给WP_查询。