[Resolved] In the announcement of the post indicate the category and subcategory.

Home Forums Support In the announcement of the post indicate the category and subcategory.

  • This topic has 4 replies, 2 voices, and was last updated 5 months ago by Tom.
Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #1295189
    Andrew

    Hello,
    In the announcement of the post I want to indicate the category and subcategory.
    How can i do this?
    1
    Best Regards

    #1295967
    Tom
    Lead Developer
    Lead Developer

    Hi there,

    The standard WordPress function to display categories doesn’t support this. Perhaps some sort of breadcrumb solution is what you’re looking for?

    Not sure if you’re using Yoast SEO, but it has a breadcrumbs feature. There are also other breadcrumb plugins out there that should give you this sort of control.

    Let me know 🙂

    #1296202
    Andrew

    I do not use the plugin Yoast SEO.
    As I understand it, this plugin does not solve my question of creating breadcrumbs in this area.
    To create breadcrumbs, I use this code. This works very well with the theme GeneratePress.
    functions.php

    function dimox_breadcrumbs() {
    
    	$text['home']     = 'Home';
    	$text['category'] = '%s';
    	$text['search']   = 'Search "%s"';
    	$text['tag']      = 'Tag "%s"';
    	$text['author']   = 'Author %s';
    	$text['404']      = 'Error 404';
    	$text['page']     = 'Page %s';
    	$text['cpage']    = 'Comment %s';
    
    	$wrap_before    = '<div class="breadcrumbs" itemscope itemtype="http://schema.org/BreadcrumbList">';
    	$wrap_after     = '</div><!-- .breadcrumbs -->';
    	$sep            = '<span class="breadcrumbs__separator"> › </span>';
    	$before         = '<span class="breadcrumbs__current">';
    	$after          = '</span>';
    
    	$show_on_home   = 0;
    	$show_home_link = 1;
    	$show_current   = 1;
    	$show_last_sep  = 1;
    
    	global $post;
    	$home_url       = home_url('/');
    	$link           = '<span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">';
    	$link          .= '<a class="breadcrumbs__link" href="%1$s" itemprop="item"><span itemprop="name">%2$s</span></a>';
    	$link          .= '<meta itemprop="position" content="%3$s" />';
    	$link          .= '</span>';
    	$parent_id      = ( $post ) ? $post->post_parent : '';
    	$home_link      = sprintf( $link, $home_url, $text['home'], 1 );
    
    	if ( is_home() || is_front_page() ) {
    
    		if ( $show_on_home ) echo $wrap_before . $home_link . $wrap_after;
    
    	} else {
    
    		$position = 0;
    
    		echo $wrap_before;
    
    		if ( $show_home_link ) {
    			$position += 1;
    			echo $home_link;
    		}
    
    		if ( is_category() ) {
    			$parents = get_ancestors( get_query_var('cat'), 'category' );
    			foreach ( array_reverse( $parents ) as $cat ) {
    				$position += 1;
    				if ( $position > 1 ) echo $sep;
    				echo sprintf( $link, get_category_link( $cat ), get_cat_name( $cat ), $position );
    			}
    			if ( get_query_var( 'paged' ) ) {
    				$position += 1;
    				$cat = get_query_var('cat');
    				echo $sep . sprintf( $link, get_category_link( $cat ), get_cat_name( $cat ), $position );
    				echo $sep . $before . sprintf( $text['page'], get_query_var( 'paged' ) ) . $after;
    			} else {
    				if ( $show_current ) {
    					if ( $position >= 1 ) echo $sep;
    					echo $before . sprintf( $text['category'], single_cat_title( '', false ) ) . $after;
    				} elseif ( $show_last_sep ) echo $sep;
    			}
    
    		} elseif ( is_search() ) {
    			if ( get_query_var( 'paged' ) ) {
    				$position += 1;
    				if ( $show_home_link ) echo $sep;
    				echo sprintf( $link, $home_url . '?s=' . get_search_query(), sprintf( $text['search'], get_search_query() ), $position );
    				echo $sep . $before . sprintf( $text['page'], get_query_var( 'paged' ) ) . $after;
    			} else {
    				if ( $show_current ) {
    					if ( $position >= 1 ) echo $sep;
    					echo $before . sprintf( $text['search'], get_search_query() ) . $after;
    				} elseif ( $show_last_sep ) echo $sep;
    			}
    
    		} elseif ( is_year() ) {
    			if ( $show_home_link && $show_current ) echo $sep;
    			if ( $show_current ) echo $before . get_the_time('Y') . $after;
    			elseif ( $show_home_link && $show_last_sep ) echo $sep;
    
    		} elseif ( is_month() ) {
    			if ( $show_home_link ) echo $sep;
    			$position += 1;
    			echo sprintf( $link, get_year_link( get_the_time('Y') ), get_the_time('Y'), $position );
    			if ( $show_current ) echo $sep . $before . get_the_time('F') . $after;
    			elseif ( $show_last_sep ) echo $sep;
    
    		} elseif ( is_day() ) {
    			if ( $show_home_link ) echo $sep;
    			$position += 1;
    			echo sprintf( $link, get_year_link( get_the_time('Y') ), get_the_time('Y'), $position ) . $sep;
    			$position += 1;
    			echo sprintf( $link, get_month_link( get_the_time('Y'), get_the_time('m') ), get_the_time('F'), $position );
    			if ( $show_current ) echo $sep . $before . get_the_time('d') . $after;
    			elseif ( $show_last_sep ) echo $sep;
    
    		} elseif ( is_single() && ! is_attachment() ) {
    			if ( get_post_type() != 'post' ) {
    				$position += 1;
    				$post_type = get_post_type_object( get_post_type() );
    				if ( $position > 1 ) echo $sep;
    				echo sprintf( $link, get_post_type_archive_link( $post_type->name ), $post_type->labels->name, $position );
    				if ( $show_current ) echo $sep . $before . get_the_title() . $after;
    				elseif ( $show_last_sep ) echo $sep;
    			} else {
    				$cat = get_the_category(); $catID = $cat[0]->cat_ID;
    				$parents = get_ancestors( $catID, 'category' );
    				$parents = array_reverse( $parents );
    				$parents[] = $catID;
    				foreach ( $parents as $cat ) {
    					$position += 1;
    					if ( $position > 1 ) echo $sep;
    					echo sprintf( $link, get_category_link( $cat ), get_cat_name( $cat ), $position );
    				}
    				if ( get_query_var( 'cpage' ) ) {
    					$position += 1;
    					echo $sep . sprintf( $link, get_permalink(), get_the_title(), $position );
    					echo $sep . $before . sprintf( $text['cpage'], get_query_var( 'cpage' ) ) . $after;
    				} else {
    					if ( $show_current ) echo $sep . $before . get_the_title() . $after;
    					elseif ( $show_last_sep ) echo $sep;
    				}
    			}
    
    		} elseif ( is_post_type_archive() ) {
    			$post_type = get_post_type_object( get_post_type() );
    			if ( get_query_var( 'paged' ) ) {
    				$position += 1;
    				if ( $position > 1 ) echo $sep;
    				echo sprintf( $link, get_post_type_archive_link( $post_type->name ), $post_type->label, $position );
    				echo $sep . $before . sprintf( $text['page'], get_query_var( 'paged' ) ) . $after;
    			} else {
    				if ( $show_home_link && $show_current ) echo $sep;
    				if ( $show_current ) echo $before . $post_type->label . $after;
    				elseif ( $show_home_link && $show_last_sep ) echo $sep;
    			}
    
    		} elseif ( is_attachment() ) {
    			$parent = get_post( $parent_id );
    			$cat = get_the_category( $parent->ID ); $catID = $cat[0]->cat_ID;
    			$parents = get_ancestors( $catID, 'category' );
    			$parents = array_reverse( $parents );
    			$parents[] = $catID;
    			foreach ( $parents as $cat ) {
    				$position += 1;
    				if ( $position > 1 ) echo $sep;
    				echo sprintf( $link, get_category_link( $cat ), get_cat_name( $cat ), $position );
    			}
    			$position += 1;
    			echo $sep . sprintf( $link, get_permalink( $parent ), $parent->post_title, $position );
    			if ( $show_current ) echo $sep . $before . get_the_title() . $after;
    			elseif ( $show_last_sep ) echo $sep;
    
    		} elseif ( is_page() && ! $parent_id ) {
    			if ( $show_home_link && $show_current ) echo $sep;
    			if ( $show_current ) echo $before . get_the_title() . $after;
    			elseif ( $show_home_link && $show_last_sep ) echo $sep;
    
    		} elseif ( is_page() && $parent_id ) {
    			$parents = get_post_ancestors( get_the_ID() );
    			foreach ( array_reverse( $parents ) as $pageID ) {
    				$position += 1;
    				if ( $position > 1 ) echo $sep;
    				echo sprintf( $link, get_page_link( $pageID ), get_the_title( $pageID ), $position );
    			}
    			if ( $show_current ) echo $sep . $before . get_the_title() . $after;
    			elseif ( $show_last_sep ) echo $sep;
    
    		} elseif ( is_tag() ) {
    			if ( get_query_var( 'paged' ) ) {
    				$position += 1;
    				$tagID = get_query_var( 'tag_id' );
    				echo $sep . sprintf( $link, get_tag_link( $tagID ), single_tag_title( '', false ), $position );
    				echo $sep . $before . sprintf( $text['page'], get_query_var( 'paged' ) ) . $after;
    			} else {
    				if ( $show_home_link && $show_current ) echo $sep;
    				if ( $show_current ) echo $before . sprintf( $text['tag'], single_tag_title( '', false ) ) . $after;
    				elseif ( $show_home_link && $show_last_sep ) echo $sep;
    			}
    
    		} elseif ( is_author() ) {
    			$author = get_userdata( get_query_var( 'author' ) );
    			if ( get_query_var( 'paged' ) ) {
    				$position += 1;
    				echo $sep . sprintf( $link, get_author_posts_url( $author->ID ), sprintf( $text['author'], $author->display_name ), $position );
    				echo $sep . $before . sprintf( $text['page'], get_query_var( 'paged' ) ) . $after;
    			} else {
    				if ( $show_home_link && $show_current ) echo $sep;
    				if ( $show_current ) echo $before . sprintf( $text['author'], $author->display_name ) . $after;
    				elseif ( $show_home_link && $show_last_sep ) echo $sep;
    			}
    
    		} elseif ( is_404() ) {
    			if ( $show_home_link && $show_current ) echo $sep;
    			if ( $show_current ) echo $before . $text['404'] . $after;
    			elseif ( $show_last_sep ) echo $sep;
    
    		} elseif ( has_post_format() && ! is_singular() ) {
    			if ( $show_home_link && $show_current ) echo $sep;
    			echo get_post_format_string( get_post_format() );
    		}
    
    		echo $wrap_after;
    
    	}
    } // end of dimox_breadcrumbs()

    single.php
    if ( function_exists( 'dimox_breadcrumbs' ) ) dimox_breadcrumbs();

    #1296598
    Andrew

    The issue has been resolved. That’s my fault. Thank you!

    #1296944
    Tom
    Lead Developer
    Lead Developer

    Glad you found a solution! 🙂

Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.