【发布时间】:2014-11-11 21:02:05
【问题描述】:
我想过滤产品类别中的产品,使其仅显示某个作者或多个作者的产品。
我已经有以下代码。这在过滤产品时起作用。显示正确的产品。除了左侧边栏中的 Woocommerce 过滤器不受过滤器的影响。左侧的过滤器显示了该类别中的所有原始产品(也来自其他用户),因此计数不正确,并且显示了来自被过滤产品的属性。这不应该是这样。我是否必须为过滤器添加另一个 pre_get_posts?
<?php
function pre_get_posts_by_author( $q ) {
if ( ! $q->is_main_query() ) return;
if ( ! $q->is_post_type_archive() ) return;
$cat_obj = $q->get_queried_object();
if($cat_obj->name == 'Nieuw')
{
$q->set( 'author_ids', '2086,2084');
}
}
add_action( 'pre_get_posts', 'pre_get_posts_by_author' );
add_filter( 'posts_where', 'author_posts_where', 10, 2 );
function author_posts_where( $where, &$wp_query )
{
global $wpdb;
if ( $wp_query->get( 'author_ids' ) ) {
$where .= ' AND ' . $wpdb->posts . '.post_author IN (' . $wp_query->get( 'author_ids' ) .')';
}
return $where;
}
?>
感谢您的帮助!
【问题讨论】:
标签: wordpress woocommerce