WordPress.org

Ready to get started?Download WordPress

Forums

Ambrosite Next/Previous Post Link Plus
[resolved] Links not showing up with in_cats (11 posts)

  1. mrwweb
    Member
    Posted 2 years ago #

    I'm using your (awesome) plugin for some very hierarchical custom taxonomy archives ordered by title using a pre_get_posts filter. For instance, Here's an example of the taxonomy with post counts:

    • Eat (0)
      • Restaurants (0)
        • Asian (10)
        • African(6)
      • Cafes/Bakeries(15)
    • Services (6)

    Posts are only assigned to the most specific term they apply to, and certain parts of the taxonomy are deeper than others. Some of the most important archives, therefore, have no terms assigned to them, but instead are parents of many terms, each with lots of posts.

    When I'm on the more-specific terms (like "Asian" above), the paging seems to work as expect. The problem is that the plugin doesn't seem to recognize that ALL posts in Asian and African are children of Eat and Restaurants and should be navigated accordingly.

    This issue seems similar to the what the hierarchical parameter of get_terms() addresses, but that may just be coincidental.

    Looking through the parameters of the *_post_link_plus functions, I don't see any parameters that should address this (the order_by works as expected for the title sorting). Right now, I'm trying to pass the archive's term_id to the in_cats parameter like this:

    'in_cats' => $wc_current_term_id,

    When I used in_same_tax, the posts had a really weird ordering.

    Any help is appreciated. Thanks.

    http://wordpress.org/extend/plugins/ambrosite-nextprevious-post-link-plus/

  2. ambrosite
    Member
    Plugin Author

    Posted 2 years ago #

    You will have to explain what you mean by "should be navigated accordingly". How exactly is the navigation working now, and what do you think it should be doing? A link to your site would also help.

  3. mrwweb
    Member
    Posted 2 years ago #

    Sorry. I'll do my best to clarify. Right now, unfortunately, I don't have a live site you can see.

    Here's the code I'm using:

    <span class="prev-biz" role="button">
    	<?php previous_post_link_plus( array(
    	'link' => 'Previous Business: %title',
    	'in_cats' => $wc_current_term_id,
    	'loop' => true,
    	'order_by' => 'post_title'
    	) ); ?>
    </span>
    <span class="next-biz" role="button">
    	<?php next_post_link_plus( array(
    	'link' => 'Next Business: %title',
    	'in_cats' => $wc_current_term_id,
    	'loop' => true,
    	'order_by' => 'post_title'
    	) ); ?>
    </span>

    In the above snippet $wc_current_term_id is the term_id of the taxonomy term archive page I'm on. I've confirmed that the IDs are accurate.

    Referencing the above hierarchical taxonomy structure, this outputs the expected post link navigation in the expected order in term archives with no children (like "Asian"), but it outputs no navigation links on "cumulative" parent categories like "Eat" or "Restaurants" that have no posts assigned to them but many descendents with posts.

    Does that make more sense?

  4. ambrosite
    Member
    Plugin Author

    Posted 2 years ago #

    The plugin is behaving exactly as it should. You cannot navigate through a category that has no posts assigned to it. It is impossible.

    Since you are using in_cats to do the filtering, the simplest solution would be to assign the posts to both their specific and cumulative categories. That way, regardless of which term_id you put there, it should work the way you expect.

  5. mrwweb
    Member
    Posted 2 years ago #

    Darn. There's no alternative?

    If I exclude all categories NOT in the parent category, would it work then?

  6. ambrosite
    Member
    Plugin Author

    Posted 2 years ago #

    That might work.

    Another possibility would be to use get_term_children to get all the term_ids underneath the parent category, and put that into in_cats.

    http://codex.wordpress.org/Function_Reference/get_term_children

  7. mrwweb
    Member
    Posted 2 years ago #

    That does sound slightly more feasible. However, would the order of that nav be just by title or would it order posts by their subcategory first and their title second?

  8. ambrosite
    Member
    Plugin Author

    Posted 2 years ago #

    It would be ordered just by title. The plugin has no option to order posts by category.

    I would also suggest that it makes no sense for the cumulative categories to sort by subcategory and then title. As a user, if I am viewing the cumulative category it is because I want to see all of the posts in that category together, sorted by title, price, or whatever. If I want to restrict my search results to a specific subcategory then I will navigate down to that subcategory.

    If you really, really want a workaround for this, you could create a meta key that contains the subcategory name. Then sort the posts on meta key first, title second.

  9. mrwweb
    Member
    Posted 2 years ago #

    I agree that that wouldn't be the expected behavior.

    I think I had this in mind:

    Note that if the current post is in more than one category, the next post link will lead to the next post in any of those categories.

    and worried that I might get weird ordering, but upon rereading that, I see that's not the case.

    Your idea for get_term_children() makes sense, and I'll try that and report back.

    I will say though, that I don't quite see why no post navigation is the expected behavior in this instance I'm dealing with. In WordPress, the expected behavior for an empty category with non-empty children is to display all posts in any children categories. Making the navigation consistent with that makes sense to me.

    No matter what, thanks for your help and sticking with me. I still think this is a great plugin and I'll rate it accordingly.

  10. ambrosite
    Member
    Plugin Author

    Posted 2 years ago #

    I think you are getting confused between viewing a term hierarchy, and viewing posts. Terms and posts are two totally different data structures, stored in different tables in the database. The program logic that displays child terms in a hierarchy is not at all applicable to navigating through individual posts.

    At any rate, let me know how get_term_children works for you.

  11. mrwweb
    Member
    Posted 1 year ago #

    Sorry it took a while to get to this. It worked like a charm.

    Thanks for the help. 5 star rating and topic resolved.

Topic Closed

This topic has been closed to new replies.

About this Plugin

About this Topic