admin管理员组文章数量:1382598
I created new custom post type and am having problem with displaying the post type name in breadcrumbs.
It should display "Home » Study » test study", but it displays Home » » test study". Site: CLICK
Also, Study (title) should be displayed on the left of breadcrumbs on the site: CLICK
On other pages breadcrumbs and titles work fine.
And basically all page structure is defined with a plugin (PMC page builder). So I can not really edit php files if I do not want to lose changes when the plugin updates.
Please tell me if any further clarification is needed. Best regards!
Edit: Breadcrumbs code from functions.php:
/* custom breadcrumb */
function pmc_breadcrumb($title = false) {
global $pmc_data;
$breadcrumb = '';
if (!is_home()) {
if($title == false){
$breadcrumb .= '<a href="';
$breadcrumb .= home_url();
$breadcrumb .= '">';
$breadcrumb .= __('Home', 'pmc-themes');
$breadcrumb .= "</a> » ";
}
if (is_single()) {
if (is_single()) {
$name = '';
if(!get_query_var($pmc_data['port_slug']) && !get_query_var('product')){
$category = get_the_category(); +
$category_id = get_cat_ID($category[0]->cat_name);
$category_link = get_category_link($category_id);
$name = '<a href="'. esc_url( $category_link ).'">'.$category[0]->cat_name .'</a>';
}
else{
$taxonomy = 'portfoliocategory';
$entrycategory = get_the_term_list( get_the_ID(), $taxonomy, '', ',', '' );
$catstring = $entrycategory;
$catidlist = explode(",", $catstring);
$name = $catidlist[0];
}
if($title == false){
$breadcrumb .= $name .' » <span>'. get_the_title().'</span>';
}
else{
$breadcrumb .= get_the_title();
}
}
} elseif (is_page()) {
$breadcrumb .= '<span>'.get_the_title().'</span>';
}
elseif(get_query_var('portfoliocategory')){
$term = get_term_by('slug', get_query_var('portfoliocategory'), 'portfoliocategory'); $name = $term->name;
$breadcrumb .= '<span>'.$name.'</span>';
}
else if(is_tag()){
$tag = get_query_var('tag');
$tag = str_replace('-',' ',$tag);
$breadcrumb .= '<span>'.$tag.'</span>';
}
else if(is_search()){
$breadcrumb .= __('Search results for ', 'pmc-themes') .'"<span>'.get_search_query().'</span>"';
}
else if(is_category()){
$cat = get_query_var('cat');
$cat = get_category($cat);
$breadcrumb .= '<span>'.$cat->name.'</span>';
}
else if(is_archive()){
$breadcrumb .= '<span>'.__('Archive','pmc-themes').'</span>';
}
else{
$breadcrumb .= 'Home';
}
if(function_exists('is_shop')){
if(is_product() || is_product_category() || is_shop()){
$breadcrumb = '';
woocommerce_breadcrumb();
}
}
}
return $breadcrumb ;
}
EDIT 2:
I turned on debuger and I get this errors: "Notice: Undefined offset: 0 in..." and "Trying to get property of non-object in...". Both pointing to the code above, more specificaly to:
f(!get_query_var($pmc_data['port_slug']) && !get_query_var('product')){
$category = get_the_category(); +
$category_id = get_cat_ID($category[0]->cat_name);
$category_link = get_category_link($category_id);
$name = '<a href="'. esc_url( $category_link ).'">'.$category[0]->cat_name .'</a>';
I created new custom post type and am having problem with displaying the post type name in breadcrumbs.
It should display "Home » Study » test study", but it displays Home » » test study". Site: CLICK
Also, Study (title) should be displayed on the left of breadcrumbs on the site: CLICK
On other pages breadcrumbs and titles work fine.
And basically all page structure is defined with a plugin (PMC page builder). So I can not really edit php files if I do not want to lose changes when the plugin updates.
Please tell me if any further clarification is needed. Best regards!
Edit: Breadcrumbs code from functions.php:
/* custom breadcrumb */
function pmc_breadcrumb($title = false) {
global $pmc_data;
$breadcrumb = '';
if (!is_home()) {
if($title == false){
$breadcrumb .= '<a href="';
$breadcrumb .= home_url();
$breadcrumb .= '">';
$breadcrumb .= __('Home', 'pmc-themes');
$breadcrumb .= "</a> » ";
}
if (is_single()) {
if (is_single()) {
$name = '';
if(!get_query_var($pmc_data['port_slug']) && !get_query_var('product')){
$category = get_the_category(); +
$category_id = get_cat_ID($category[0]->cat_name);
$category_link = get_category_link($category_id);
$name = '<a href="'. esc_url( $category_link ).'">'.$category[0]->cat_name .'</a>';
}
else{
$taxonomy = 'portfoliocategory';
$entrycategory = get_the_term_list( get_the_ID(), $taxonomy, '', ',', '' );
$catstring = $entrycategory;
$catidlist = explode(",", $catstring);
$name = $catidlist[0];
}
if($title == false){
$breadcrumb .= $name .' » <span>'. get_the_title().'</span>';
}
else{
$breadcrumb .= get_the_title();
}
}
} elseif (is_page()) {
$breadcrumb .= '<span>'.get_the_title().'</span>';
}
elseif(get_query_var('portfoliocategory')){
$term = get_term_by('slug', get_query_var('portfoliocategory'), 'portfoliocategory'); $name = $term->name;
$breadcrumb .= '<span>'.$name.'</span>';
}
else if(is_tag()){
$tag = get_query_var('tag');
$tag = str_replace('-',' ',$tag);
$breadcrumb .= '<span>'.$tag.'</span>';
}
else if(is_search()){
$breadcrumb .= __('Search results for ', 'pmc-themes') .'"<span>'.get_search_query().'</span>"';
}
else if(is_category()){
$cat = get_query_var('cat');
$cat = get_category($cat);
$breadcrumb .= '<span>'.$cat->name.'</span>';
}
else if(is_archive()){
$breadcrumb .= '<span>'.__('Archive','pmc-themes').'</span>';
}
else{
$breadcrumb .= 'Home';
}
if(function_exists('is_shop')){
if(is_product() || is_product_category() || is_shop()){
$breadcrumb = '';
woocommerce_breadcrumb();
}
}
}
return $breadcrumb ;
}
EDIT 2:
I turned on debuger and I get this errors: "Notice: Undefined offset: 0 in..." and "Trying to get property of non-object in...". Both pointing to the code above, more specificaly to:
f(!get_query_var($pmc_data['port_slug']) && !get_query_var('product')){
$category = get_the_category(); +
$category_id = get_cat_ID($category[0]->cat_name);
$category_link = get_category_link($category_id);
$name = '<a href="'. esc_url( $category_link ).'">'.$category[0]->cat_name .'</a>';
Share
Improve this question
edited Sep 4, 2015 at 6:00
Martin Peternel
asked Sep 3, 2015 at 11:24
Martin PeternelMartin Peternel
311 silver badge8 bronze badges
2
- 2 It would really help if can show some code. Breadcrumbs aren't build in, so it is impossible for anyone to know what your code looks like that displays this feature – Pieter Goosen Commented Sep 3, 2015 at 11:28
- thank you Pieter, I have updated the question. I hope this is what you wanted to see – Martin Peternel Commented Sep 3, 2015 at 11:47
1 Answer
Reset to default 2So I figured out, that my theme was not designed to handle custom post types (at least not via the archive). The solution was to edit the code as shown below. Comments inserted where changes were made:
function pmc_breadcrumb($title = false) {
global $pmc_data;
$breadcrumb = '';
if (!is_home()) {
if($title == false){
$breadcrumb .= '<a href="';
$breadcrumb .= home_url();
$breadcrumb .= '">';
$breadcrumb .= __('Home', 'pmc-themes');
$breadcrumb .= "</a> » ";
}
if (is_single()) {
if (is_single()) {
$name = '';
if(!get_query_var($pmc_data['port_slug']) && !get_query_var('product') && !get_query_var('study')/*<-- STUDY ADDED*/){
$category = get_the_category(); +
$category_id = get_cat_ID($category[0]->cat_name);
$category_link = get_category_link($category_id);
$name = '<a href="'. esc_url( $category_link ).'">'.$category[0]->cat_name .'</a>';
}
//ADDED THIS ELSE IF//
else if(!get_query_var($pmc_data['port_slug']) && !get_query_var('product') && get_query_var('study')){
$name = '<a href="../">'.__('Studies', 'pmc-themes').'</a>';
}
else{
$taxonomy = 'portfoliocategory';
$entrycategory = get_the_term_list( get_the_ID(), $taxonomy, '', ',', '' );
$catstring = $entrycategory;
$catidlist = explode(",", $catstring);
$name = $catidlist[0];
}
if($title == false){
$breadcrumb .= $name .' » <span>'. get_the_title().'</span>';
}
else{
$breadcrumb .= get_the_title();
}
}
}
else if (is_page()) {
$breadcrumb .= '<span>'.get_the_title().'</span>';
}
else if(get_query_var('portfoliocategory')){
$term = get_term_by('slug', get_query_var('portfoliocategory'), 'portfoliocategory'); $name = $term->name;
$breadcrumb .= '<span>'.$name.'</span>';
}
else if(is_tag()){
$tag = get_query_var('tag');
$tag = str_replace('-',' ',$tag);
$breadcrumb .= '<span>'.$tag.'</span>';
}
/*****I ADDED THIS TO SHOW ON ARCIVE PAGES******/
else if(is_archive()){
$breadcrumb .= '<span class="span-studies">'.__('Studies', 'pmc-themes').'<span>';
}
/*****end of my edit******/
else if(is_search()){
$breadcrumb .= __('Search results for ', 'pmc-themes') .'"<span>'.get_search_query().'</span>"';
}
else if(is_category()){
$cat = get_query_var('cat');
$cat = get_category($cat);
$breadcrumb .= '<span>'.$cat->name.'</span>';
}
else if(is_archive()){
$breadcrumb .= '<span>'.__('Archive','pmc-themes').'</span>';
}
else{
$breadcrumb .= 'Home';
}
if(function_exists('is_shop')){
if(is_product() || is_product_category() || is_shop()){
$breadcrumb = '';
woocommerce_breadcrumb();
}
}
}
return $breadcrumb;
}
本文标签: Custom post type not displayed in breadcrumbs on archive page
版权声明:本文标题:Custom post type not displayed in breadcrumbs on archive page 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744523460a2610598.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论