WordPress的:get_categories自定义帖子类型,自定义分类,按类别过滤
问题描述:
我有一个相当先进的问题,希望有人在这里可以帮助我。我有以下几点:WordPress的:get_categories自定义帖子类型,自定义分类,按类别过滤
自定义后类型的“产品”
自定义分类“品牌”
&“类别”
每个“产品”的标准分类标记有“品牌”,并放置在父母和孩子类别
我需要做到以下几点:
存档。 php页面显示所有'类别',其中'产品'具有'品牌'分类和'品牌'的值。 这工作得很好,非常感谢以下功能@MikeSchinkel
$term = get_query_var('term');
$brand = get_term_by('slug',$term,'brands'); // This here just to illustrate
$categories = get_cross_referenced_terms(array(
'post_type' => 'Products',
'taxonomy' => 'category',
'related_taxonomy' => 'brands',
'term_id' => $brand->term_id
));
它使用以下功能:
// query to get categories for a specific tag
function get_cross_referenced_terms($args) {
global $wpdb;
$args = wp_parse_args($args,array(
'post_type' => 'Products',
'taxonomy' => 'category',
'related_taxonomy' => 'brands',
'term_id' => 0,
));
extract($args);
$sql = <<<SQL
SELECT DISTINCT
{$wpdb->terms}.*,
COUNT(*) AS post_count
FROM
{$wpdb->terms}
INNER JOIN {$wpdb->term_taxonomy} ON {$wpdb->terms}.term_id={$wpdb->term_taxonomy}.term_id
INNER JOIN {$wpdb->term_relationships} ON {$wpdb->term_taxonomy}.term_taxonomy_id={$wpdb->term_relationships}.term_taxonomy_id
INNER JOIN {$wpdb->posts} ON {$wpdb->term_relationships}.object_id={$wpdb->posts}.ID
INNER JOIN {$wpdb->term_relationships} related_relationship ON {$wpdb->posts}.ID=related_relationship.object_id
INNER JOIN {$wpdb->term_taxonomy} related_term_taxonomy ON related_relationship.term_taxonomy_id=related_term_taxonomy.term_taxonomy_id
INNER JOIN {$wpdb->terms} related_terms ON related_term_taxonomy.term_id=related_terms.term_id
WHERE 1=1
AND related_terms.term_id<>{$wpdb->terms}.term_id
AND {$wpdb->posts}.post_type='%s'
AND {$wpdb->term_taxonomy}.taxonomy='%s'
AND related_term_taxonomy.taxonomy='%s'
AND related_terms.term_id=%d
AND {$wpdb->term_taxonomy}.parent=0
GROUP BY
{$wpdb->terms}.term_id
SQL;
$sql = $wpdb->prepare($sql,$post_type,$taxonomy,$related_taxonomy,$term_id);
$terms = $wpdb->get_results($sql);
return $terms;
}
这将显示所有类别指定的品牌和专上工作。但现在我需要它能够为类别页面设置'child_of'。所以我需要添加(我认为)是查询类别ID或指定类别父项的能力。喜欢的东西:
'child_of' => $parent_category
我想这可能是我能帮这里的数据库查询地址:
AND {$wpdb->term_taxonomy}.parent=0
但它有点出我的联赛!如果有人能帮助我,我会非常感激!
三江源
戴夫
答
是你接近。这可能工作:
AND {$wpdb->term_taxonomy}.parent=[$term_id}
如果你只想要你是传递品牌的子女,否则,如果您需要单独传递,你可以在例如提供
功能添加到ARGS :
'term_id' => 0,
'parent_id' => 0,
));
,然后下面你将使用新的变量
AND {$wpdb->term_taxonomy}.parent=[$parent_id}