Support » Fixing WordPress » Displaying posts in_same_Cat using Next/Prev Post functions

  • Resolved rideforver


    So here’s a question, and excuse me if I’m wrong… but does the in_same_Cat parameter work on next_post_link and prev_post_link functions.

    I only have three categories. NO. 1 is the General cat which is not a parent to any other but in which all posts are posted under. No.2 and No. 4 are Journal and School posts respectively under which all posts are categoried. Neither 2 or 4 is a child to 1.

    On Single post view I want to show links only in No. 2 or No.4 but I only receive links from the General Category. I’m using the following unsuccessfully:

    <?php next_post(‘% » ‘,”,’yes’,’yes’); ?>

    where the 4th parameter is to display in the same Cat. I’ve also tried excluding irrelevant categores as at:

    <?php next_post(‘% » ‘,”,’yes’,’yes’,”,’1′); ?> and still no results.

    Where am I going wrong?

Viewing 11 replies - 1 through 11 (of 11 total)
  • I don’t quite see what you want to do, but does this help:

    Next/Previous posts in same category

    Hi tsguitar,

    I just want to show links for posts residing in the same category as being surfed at the time. IT seems so simple but I can’t make the parameter in next/prev tags work.

    All of my categories are ‘parents’ but I’m not able to only display links from within the same category.

    Thanks for the above link, I’m looking into using it more, but where possible I’ve been trying to use as many WP internal functions as possible. I find most things can be done, it just takes finding them. But displaying a link in the same category struck me as an obvious thing to work.

    See this discussion:

    Got it. Here it is:
    <?php previous_post_link($format='&laquo %link', $link='%title', $in_same_cat = true); ?>

    Read about it here:

    Thank you! I assume we’ll see another happy “resolved” flag coming soon to a thread near you.

    Right, First off thanks tsguitar for finding that info. My first comment is that, this information should be updated to the codex as there is no public documentation of the depreciation of next/previous_post. Was very useful in any case but it hasn’t made a difference… in my case.

    This means it’s either the fault of my setup, or something in the template tag. I’ve exhusted as many rubix cube type options as my brain will do at this hour with the new and depreciated tags.

    To recap the scenario, I have two categorys and the default “General” cat. One category is Journal the other is schools. On the single post page for category “schools” I want next and prev_post links to display only school reviews (the same for Journal). However, only posts from General are being displayed despite in_same_cat being set to true.

    If it is the setup I doubt it because on every single post page, I have a get_post function that displays the last 5 posts for that category and this has no problems. So therefore can this still be something with the tag or am I missing something.

    Thanks again for your help, I would like truly like to resolve this.

    NOTE: This link talks about $in_same_cat being ‘fixed’ and is referred to in the node I mentioned above by Lorelle. However the link appears to have been moved. Does anyone know where?

    The code I typed out in my previous post worked in my 2.0.4 blog. That was copied directly from a test page I put together and it worked to show previous posts in the same category. If you typed that code in and are getting the previous posts chronologically, but not within the same category, something’s wrong with your installation of WordPress. Are you dealing with posts that are in 2 categories? Is everything else displaying fine on your blog? On your home page, do all posts display, not just the ones from “General”?

    I agree that this info should be added to the Codex.

    Installation info: WordPress Version: 2.01

    Got it working, but took some shinnangans (never know how to spell that word). This is the code I eventually used:

    <?php previous_post_link($format=’&laquo %link’, $link=’%title’, $in_same_cat = false, $excluded_categories = ‘2’); ?>

    This is a link taken from my single.php for a category 4 post that states “show the link, title, **NOT** the same Cat and exclude category 2”. The key was in making the in_same_cat parameter false and then excluding the categories I didn’t want to show. From what I understand it, I have to include ‘and’ between any further categories I want to exclude in the future.

    I still think it’s highly annoying that the Next_link_post function takes General as the parent category when all of my categories ARE parents. The more logical approach for future development would be to have a ‘category’ parameter which would work in opposite to the current exclude function. This is how many other functions like get_post work. Then I could state, “show the next link for $category=’2′”. The $in_same_cat parameter is confusing and where a post is assigned to more than one category, can cause problems (at least for me anyway.)

    Sorry to rant on but I think this is important. I still think the Codex pages should be updated as a matter of priority. Whereas the depreciated functions may work for others, in my case I couldn’t manage (note: I’ve also tried the above technique with the old depreciated tags using six parameters, in_same_cat=’no’ excluded cat=’2′ but in that scenario, only the arrows appear).

    Out and out, thanks again tsguitar for your help on this. I appreciate it and it makes me glad to be part of an open source community when problems can be solved efficiently in this way.

    All the Best,

    I understand. When dealing with multiple categories, something like in_same_cat is a challenge because which category should WP go with?

    Shouldn’t you say “YES in the same category, but exclude General”? That way it would ignore the General category and use the other category it’s posted in as the one to show the next or previous post from?

    You got it working and that’s the point. Maybe this’ll help someone else. Anyone can update the Codex, so you’re welcome to it, rideforever. You’ve actually done it so you’re just as good a candidate to write that page as any of the rest of us.

    I can certainly give it a go, but it’s usually a better result when the designer of a function/plugin releases his own changelog/notes as they understand and can explain better 🙂 Then revisions can be made. However, if you check out template-functions-links.php in the WordPress root directory, that actually contains the code history for the new and decepreciated next/previous post functions which is also currently displayed on Owen’s

    I’ll certainly bear in mind a codex upgrade for the near future though. I just got started with PHP but it’s a fun language and WP is a great project to be involved with.

    Well done to you all.
    All the Best. Steve

    Since this is an open source sommunity, no one’s waiting on the designer of the functions to write the pages. I agree that it’s usually better that way, given the degree of understanding the originator typically has, but we’re all a part of this project. I went ahead and gave it a shot:

    I still don’t get why you had to end up with $in_same_cat=false in order to do what you wanted. Is that only if you have a posts with more than one category?

    Setting $in_same_cat to false worked better with the exclude parameter. It may make no difference for others. What was important to me was setting $excluded_categories to exclude all the cats I didn’t want.

    Job well done on the Codex pages. You set a good example. This IS an open-community and anyone CAN add to it, whether right or wrong. Myself included :).

    All the Best

Viewing 11 replies - 1 through 11 (of 11 total)
  • The topic ‘Displaying posts in_same_Cat using Next/Prev Post functions’ is closed to new replies.