[Resolved] Post Navigation – How exclude a category from "next" and "previous" post links?

Home Forums Support [Resolved] Post Navigation – How exclude a category from "next" and "previous" post links?

Home Forums Support Post Navigation – How exclude a category from "next" and "previous" post links?

Viewing 12 posts - 16 through 27 (of 27 total)
  • Author
    Posts
  • #482090
    Feri

    https:// . com/ global/

    and i also have Ultimate Category Excluder plugin installed, i dont know maybe cause conflict or…

    #482120
    Feri

    or maybe i can send you a temporary admin login?

    #482183
    Tom
    Lead Developer
    Lead Developer

    Perhaps try this instead:

    add_filter( 'get_next_post_excluded_terms', 'tu_exclude_terms' );
    add_filter( 'get_previous_post_excluded_terms', 'tu_exclude_terms' );
    function tu_exclude_terms() {
        return array( '3453' );
    }
    #482186
    Feri

    nothing happen, i dont know what is wrong with the code

    #483084
    Feri

    Try to clear cache, browser history, refresh etc and link post (exclude category) still showing on next/previous link

    #483128
    Tom
    Lead Developer
    Lead Developer

    Well that was harder than it should have been. Looks like a bug in WP where the filter doesn’t work if no excluded terms are added by default.

    Instead, add this function: https://gist.github.com/generatepress/803a950d6381dd98e6bc4418b817ed82

    #483147
    Feri

    wow it works
    thank you tom for your great support and answer

    #483161
    Tom
    Lead Developer
    Lead Developer

    Glad I could help! 🙂

    #2247785
    DM

    Hi Tom! Your function still works, BUT it removed the forward “<” and “>” back arrows.

    #2247795
    Fernando
    Customer Support

    Hi DM,

    Can you try this instead? Added the arrows in the code by Tom:

    if ( ! function_exists( 'generate_content_nav' ) ) {
    	/**
    	 * Display navigation to next/previous pages when applicable.
    	 *
    	 * @since 0.1
    	 *
    	 * @param string $nav_id The id of our navigation.
    	 */
    	function generate_content_nav( $nav_id ) {
    		if ( ! apply_filters( 'generate_show_post_navigation', true ) ) {
    			return;
    		}
    
    		global $wp_query, $post;
    
    		// Don't print empty markup on single pages if there's nowhere to navigate.
    		if ( is_single() ) {
    			$previous = ( is_attachment() ) ? get_post( $post->post_parent ) : get_adjacent_post( false, '', true );
    			$next = get_adjacent_post( false, '', false );
    
    			if ( ! $next && ! $previous ) {
    				return;
    			}
    		}
    
    		// Don't print empty markup in archives if there's only one page.
    		if ( $wp_query->max_num_pages < 2 && ( is_home() || is_archive() || is_search() ) ) {
    			return;
    		}
    
    		$nav_class = ( is_single() ) ? 'post-navigation' : 'paging-navigation';
    		$category_specific = apply_filters( 'generate_category_post_navigation', false );
    		?>
    		<nav id="<?php echo esc_attr( $nav_id ); ?>" class="<?php echo esc_attr( $nav_class ); ?>">
    			<span class="screen-reader-text"><?php esc_html_e( 'Post navigation', 'generatepress' ); ?></span>
    
    			<?php if ( is_single() ) : // navigation links for single posts.
    
    				previous_post_link(
    					'<div class="nav-previous">' . generate_get_svg_icon( 'arrow-left' ) . '<span class="prev" title="' . esc_attr__( 'Previous', 'generatepress' ) . '">%link</span></div>',
    					'%title',
    					$category_specific,
    					array( '29' )
    				);
    
    				next_post_link(
    					'<div class="nav-next">' . generate_get_svg_icon( 'arrow-right' ) . '<span class="next" title="' . esc_attr__( 'Next', 'generatepress' ) . '">%link</span></div>',
    					'%title',
    					$category_specific,
    					array( '29' )
    				);
    
    			elseif ( is_home() || is_archive() || is_search() ) : // navigation links for home, archive, and search pages.
    
    				if ( get_next_posts_link() ) : ?>
    					<div class="nav-previous"><span class="prev" title="<?php esc_attr_e( 'Previous', 'generatepress' );?>"><?php next_posts_link( __( 'Older posts', 'generatepress' ) ); ?></span></div>
    				<?php endif;
    
    				if ( get_previous_posts_link() ) : ?>
    					<div class="nav-next"><span class="next" title="<?php esc_attr_e( 'Next', 'generatepress' );?>"><?php previous_posts_link( __( 'Newer posts', 'generatepress' ) ); ?></span></div>
    				<?php endif;
    
    				if ( function_exists( 'the_posts_pagination' ) ) {
    					the_posts_pagination( array(
    						'mid_size' => apply_filters( 'generate_pagination_mid_size', 1 ),
    						'prev_text' => apply_filters( 'generate_previous_link_text', __( '&larr; Previous', 'generatepress' ) ),
    						'next_text' => apply_filters( 'generate_next_link_text', __( 'Next &rarr;', 'generatepress' ) ),
    					) );
    				}
    
    				/**
    				 * generate_paging_navigation hook.
    				 *
    				 * @since 0.1
    				 */
    				do_action( 'generate_paging_navigation' );
    
    			endif; ?>
    		</nav><!-- #<?php echo esc_html( $nav_id ); ?> -->
    		<?php
    	}
    }

    Kindly let us know how it goes.

    #2247807
    DM

    Hi there Fernando!
    Thanks for your help! It works! Just replaced the ” ’29’ ” with my category IDs. 🙂

    #2247810
    Fernando
    Customer Support

    Yes, forgot to mention that. You’re welcome DM! 🙂

Viewing 12 posts - 16 through 27 (of 27 total)
  • You must be logged in to reply to this topic.