Archived

This topic is now archived and is closed to further replies.

  • 0

Resolved exclude categories from carousel


Question

Posted · Report post

Hi

we would like to globally exclude categories from appearing in the carousel. we have about 30 categories and there are 8 that we need to exclude.


function exclude_category( $query ) {

			    if ( $query->is_home ) {

					    $query->set( 'cat', '-1' );

			    }

	    }

	    add_action( 'pre_get_posts', 'exclude_category' );


i found this on another thread here and was wondering if it could be tailored to achieve the exclusion in carousels.

Thanks

Share this post


Link to post
Share on other sites

8 answers to this question

Posted · Report post

Hi Rob,

Thanks for your advice, if none of the pagelines developers can advise on how to target the carousel we will look at your suggestion.

We have asked this in the chat service and been advised to ask it here. Hopefully a developer will be along soon.

thanks

Share this post


Link to post
Share on other sites

Posted · Report post

can anyone advise on how the carousel can be targeted correctly?

thanks

Share this post


Link to post
Share on other sites

Posted · Report post

I have no idea when that might be Gavin, as they usually don't work in here. One's on vacation too. I can't be sure when this might be answered, but did flag it for you.

Share this post


Link to post
Share on other sites

Posted · Report post

Gavin your filter can be reused, just needs some logic added so it does not hijack the main query ;)

Now let me point out, this is a bit of a hack ;) First you have to set the max carousel images to something random, I chose 17.


function exclude_category( $query ) {
if ( $query->is_home && isset( $query->query['numberposts'] ) && '17' == $query->query['numberposts'] ) {
$query->set( 'cat', '-1' );
}
}
add_action( 'pre_get_posts', 'exclude_category' );
[/CODE]

So the filter checks if were on the frontpage, assume thats where you wanted the carousel, then it looks for numberposts being '17' ;) Without this check it will break the main query for your posts.

Share this post


Link to post
Share on other sites

Posted · Report post

Gavin, I am unsure of how to exclude a category, except for a method I didn't think you'd like. So, let me offer it anyway and let you make your own choice.

In your site, create a new category... for the sake of this example, we will call the category "carousel".

For each post you want to show, add the post to that category. If you have a large volume of posts, you can use an old but still functional plugin called "Batch Cat", available at WP.org.

Then, in the settings for the carousel, rather than exclude, you'd select the carousel category. Only the posts you have added to that category will display, essentially excluding those you do not wish included.

Yes, it's old fashioned thinking, but I'm and old guy.

Share this post


Link to post
Share on other sites

Posted · Report post

It probably can be used that way Gavin, but it would take a developer with skills in functions and hooks to craft it properly. Doing it wrong could break your site, as I'm sure you know. I understand you've done some seriously good coding in past and imagine this isn't beyond your reach, given the fact that you have an example of the hook.

Share this post


Link to post
Share on other sites

Posted · Report post

Thanks Simon

that has worked perfect.

:)

Share this post


Link to post
Share on other sites

Posted · Report post

The topic was marked as resolved.

Share this post


Link to post
Share on other sites