Fallback to matching the leaf category if the full path doesn't match. Props David House. fixes #2161

git-svn-id: http://svn.automattic.com/wordpress/trunk@3385 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
ryan 2005-12-31 21:53:13 +00:00
parent 90fc694201
commit 67febd9d7a

View File

@ -485,15 +485,22 @@ class WP_Query {
$cat_path .= ($pathdir!=''?'/':'') . sanitize_title($pathdir);
$all_cat_ids = get_all_category_ids();
$q['cat'] = 0;
$q['cat'] = 0; $partial_match = 0;
foreach ( $all_cat_ids as $cat_id ) {
$cat = get_category($cat_id);
if ( $cat->fullpath == $cat_path ) {
$q['cat'] = $cat_id;
break;
} elseif ( $cat->category_nicename == $q['category_name'] ) {
$partial_match = $cat_id;
}
}
//if we don't match the entire hierarchy fallback on just matching the nicename
if (!$q['cat'] && $partial_match) {
$q['cat'] = $partial_match;
}
$tables = ", $wpdb->post2cat, $wpdb->categories";
$join = " LEFT JOIN $wpdb->post2cat ON ($wpdb->posts.ID = $wpdb->post2cat.post_id) LEFT JOIN $wpdb->categories ON ($wpdb->post2cat.category_id = $wpdb->categories.cat_ID) ";
$whichcat = " AND (category_id = '" . $q['cat'] . "'";