Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #351559

    Hey there,

    I’m using Masonry to display main blog posts on the homepage and am going to build a page for audio posts only. I would like SOME but not all of the audio posts to appear on homepage. Is there a way I can exclude one tag or category (which I would then create for these audio-page-only posts) from Masonry, or do I need to select ALL categories in order to exclude one?

    Slightly related, I am using Blog Posts to display one post in full above the Masonry layout. How do I exclude that post from displaying in the Masonry grid as well?

    Thank you enormously :) Elizabeth

    #351738

    Hi ElizabethB!

    Thank you for using Enfold.

    Yes, you need to select all categories that you want to show then leave the excluded categories. Or use this on functions.php to exclude certain categories by id:

    add_filter('avia_masonry_entries_query', 'avia_masonry_custom_query');
    
    function avia_masonry_custom_query( $query ) {
    $exclude_cat = array('category__not_in' => '49');
    $query = array_merge((array)$exclude_cat, (array)$query);
    return $query;
    }

    Add category ids on the category__not_in parameter. Refer to this link for more info: http://codex.wordpress.org/Class_Reference/WP_Query#Category_Parameters

    Cheers!
    Ismael

    #989473

    Hi, (slightly) related to this question, I use the ‘Magazine’ element to display posts on my front page.

    I have a setup:
    – Category 1
    – -Subcat 1
    – -Subcat 2
    – -Subcat 3
    -Category 2

    I have some posts which belong to a subcategory of Category 1 and also belong to Category 2

    The Magazine element for Category 1 shows all posts of all subcategories. However, I don’t want it to show posts which are also included in Category 2. Is there a filter I can add to functions to not show posts in Magazine element for Cat1 if they also belong to Cat2? Thanks

    Edit: I know that I can exclude duplicates. I am just searching for a way to exclude posts labelled Cat1+Cat2 from the Magazine element for category 1, but to include them in the category page for category 1 (http://my.domain.com/category/category1).

    Thanks

    • This reply was modified 6 years, 3 months ago by medi-paper.
    #990272

    Hi,

    You can tr to combine the category__not_in with the category__in parameter like:

    
    add_filter('avia_masonry_entries_query', 'avia_masonry_custom_query');
    
    function avia_masonry_custom_query( $query ) {
    $exclude_cat = array("category__in" => array(1), "category__not_in" => array(2));
    $query = array_merge((array)$exclude_cat, (array)$query);
    return $query;
    }
    

    Replace 1 with the category id of category 1 and 2 with the category id of category 2.

    Best regards,
    Dude

    #990319

    Hi, thanks.
    I just tried but to no avail.

    Just to confirm, is the avia_masonry_entries_query applicable to the ‘Magazine’ element?

    Thanks once more

    #990362

    Hi,

    No, I thought you want to change the masonry element (like mentioned in the first post). If you want to change the magazine query use this code:

    
    add_filter('avf_magazine_entries_query', 'avia_magazine_custom_query', 10, 2);
    
    function avia_magazine_custom_query( $query, $params ) {
    $exclude_cat = array("category__in" => array(1), "category__not_in" => array(2));
    $query = array_merge((array)$exclude_cat, (array)$query);
    return $query;
    }
    

    Best regards,
    Dude

    #990536

    Thanks Dude, however, that excludes Category 2 completely from all magazine elements (even from the magazine element supposed to show Category 2 only), not just from the magazine element supposed to be showing Category 1.

    #991158

    Hi,

    I haven’t tested it but you can try to use the css class field to apply the code to certain magazine elements only.

    1) Activate the css class option field: https://kriesi.at/documentation/enfold/intro-to-advanced-layout-builder/#turn-on-custom-css-class-field-for-all-alb-elements

    2) Insert the css class “avf_remove_duplicate_cats” (without the quotes) into the field (magazine element you want to filter)

    3) Save the elements/page

    4) Add this code to the funtions.php file

    
    add_filter('avf_magazine_entries_query', 'avia_magazine_custom_query', 10, 2);
    function avia_magazine_custom_query( $query, $params ) {
    	if(!empty($params['class']) && strpos($params['class'], 'avf_remove_duplicate_cats') !== false)
    	{
    		$exclude_cat = array("category__in" => array(1), "category__not_in" => array(2));
    		$query = array_merge((array)$exclude_cat, (array)$query);
    	}
    	return $query;
    }
    

    and replace 1 and 2 with your category ids.

    Best regards,
    Dude

    #991364

    Thanks, Dude. That did the trick! Much appreciated.

    #991419

    Hi,

    Awesome! Glad we could help!

    Please take a moment to review our theme and show your support https://themeforest.net/downloads
    Don’t forget to bookmark Enfold Documentation for future reference.

    Thank you for using Enfold :)

    Best regards,
    Ismael

Viewing 10 posts - 1 through 10 (of 10 total)
  • The topic ‘Exclude category or tag from Masonry pull/avoid duplicate posts on frontpage’ is closed to new replies.