• Resolved kenlbrown

    (@kenlbrown)


    Have a weird issue with the category order and have looked for an answer but this has me stumped. I have the latest versions of WP and hueman theme and have a child theme setup with this in my functions.php file to reverse the post order so the parent category shows first:

    `function reverse_categories($terms, $id, $taxonomy){
    if($taxonomy == ‘category’){
    $terms = array_reverse($terms, true);
    }
    return $terms;
    }
    add_filter(‘get_the_terms’, ‘reverse_categories’, 10, 3);’

    The site in question is http://airmaxxx.com/

    You’ll notice the posts have 4 categories; air compressors, air tanks, air valves and air bags. They all have air ride suspensions as their parent category but only compressors and bags are displaying correctly. If I take out the code in my functions.php then only the tanks and valves display correctly. The problem is with the categories for air tanks and air valves. If I setup a new category they are displayed correctly (with the code in functions). I’ve deleted all categories and started from scratch numerous times to no avail. It’s not a caching issue nor do I have anything else customized for the categories. Any help would be greatly appreciated!!

    Thanks in advance!

    Ken

Viewing 5 replies - 1 through 5 (of 5 total)
  • Hi Ken. I’m not quite following what you mean by “displaying correctly”. I don’t see the difference between the posts in any of the categories but them I’m not sure what I’m looking for. In any case, is it possible that the issue is with Woocommerce since it is replacing the category page content with it’s own format?

    Thread Starter kenlbrown

    (@kenlbrown)

    Sorry for not being clear bd… on the front page in the posts. The parent and child categories are not showing correctly. The correct order is:

    AIR RIDE SUSPENSIONS / AIR COMPRESSORS
    AIR RIDE SUSPENSIONS / AIR BAGS

    But for some unknown reason AIR VALVES / AIR RIDE SUSPENSIONS and AIR TANKS / AIR RIDE SUSPENSIONS are reversed.

    The categories air valves and air tanks display first and I can’t get them reversed unless I put in or take out the function reverse_categories in my functions.php but then they all get reversed.

    I’ve been scratching my head on this for a while now :/

    It has to do with the WP default of returning the post category list sorted by category name. So, without your filter, “Air Bags” and “Air Compressors” come before “Air Ride Suspensions”, but “Air Ride Suspensions” comes before “Air Tanks” and “Air Valves”. So you get:

    Air Bags / Air Ride Suspensions
    Air Compressors / Air Ride Suspensions
    Air Ride Suspensions / Air Tanks
    Air Ride Suspensions / Air Valves

    When you add your function it reverses them all, which is what you’d expect.

    There are several posts around the web on how to return a hierarchical taxonomy list but, in this case, the easiest thing to do is use native WP functionality:

    1. Edit your posts and unselect the Parent category; only the child category is selected.
    2. Copy the content-standard.php file to your child theme
    3. Find this line about half-way down:

    <p class="post-category"><?php the_category(' / '); ?></p>

    4. Change it to this:

    <p class="post-category"><?php the_category(' / ', 'multiple'); ?></p>

    This will return the categories with the correct parent/child relationships and each category will be a separate link.

    Codex reference: https://codex.wordpress.org/Function_Reference/the_category

    Correction: copy content.php, not content-standard.php.

    Thread Starter kenlbrown

    (@kenlbrown)

    Thanks… that worked like a charm! Most all the posts I read pointed me to using the filter.

Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘Category Order’ is closed to new replies.