HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux WebLive 5.15.0-79-generic #86-Ubuntu SMP Mon Jul 10 16:07:21 UTC 2023 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/wpwisesolutions/wp-content/themes/pofo/lib/pofo-breadcrumb.php
<?php
/**
 * Default Breadcrumb Class File.
 *
 * @package Pofo
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) { exit; }

if( ! class_exists('Pofo_Breadcrumb_Navigation') ){
	class Pofo_Breadcrumb_Navigation {

	/*==============================================================================
	    					=== VARIABLES ===
	  ============================================================================*/
		
		var $opt;	// array containing the options
		
		
		//function __construct(){ /* nothing */ }

		function __construct() {
			$this->opt = array(
				
				'static_frontpage' => false,

				//*** only used if 'static_frontpage' => true
				// Relative URL for your blog's address that is used for the Weblog link. 
				// Use it if your blog is available at http://www.site.com/myweblog/, 
				// and at http://www.site.com/ a WordPress page is being displayed:
				// In this case apply '/myweblog/'.
					'url_blog' => '',

				// Display HOME? If set to false, HOME is not being displayed. 
					'home_display' => true,
				// URL for the home link
					'url_home' => home_url('/'),
				// Apply a link to HOME? If set to false, only plain text is being displayed.
					'home_link' => true,
				// Text displayed for the home link, if you don't want to call it home then just change this.
				// Also, it is being checked if the current page title = this variable. If yes, only the Home link is being displayed,
				// but not a weird "Home / Home" breadcrumb.	
					'title_home' => esc_html__( 'Home', 'pofo' ),

				// Text displayed for the weblog. If "'static_frontpage' => false", you
				// might want to change this value to "Home" 
					'title_blog' => esc_html__( 'Weblog', 'pofo' ),

				// Separator that is placed between each item in the breadcrumb navigation, but not placed before
				// the first and not after the last element. You also can use images here,
				// e.g. '<img src="separator.gif" title="separator" width="10" height="8" />'
					'separator' => ' / ',
				// Text displayed for the search page.
					'title_search' => esc_html__( 'Search', 'pofo' ),
				// Prefix for a single blog article.
					'singleblogpost_prefix' => '',
				// Suffix for a single blog article.
					'singleblogpost_suffix' => '',
				// Prefix for a page.
					'page_prefix' => '',
				// Suffix for a page.
					'page_suffix' => '',
				// The prefix that is used for mouseover link (e.g.: "Browse to: Archive")
					'urltitle_prefix' => esc_html__( 'Browse to: ', 'pofo' ),
				// The suffix that is used for mouseover link
					'urltitle_suffix' => '',
				// Prefix for categories.
					'archive_category_prefix' => '',
				// Suffix for categories.
					'archive_category_suffix' => '',
				// Prefix for archive by year/month/day
					'archive_date_prefix' => '',
				// Suffix for archive by year/month/day
					'archive_date_suffix' => '',
				// Prefix for tags (Simple Tagging Plugin)
					'tag_page_prefix' => esc_html__( 'Tag: ', 'pofo' ),
				// Prefix for tags (Simple Tagging Plugin)
					'tag_page_suffix' => '', 
				// Text displayed for a 404 error page, , only being used if 'use404' => true
					'title_404' => esc_html__( '404', 'pofo' ),
				// For post type
					'title_portfolio' => '',
				// Display current item as link?
					'link_current_item' => false,
				// URL title of current item, only being used if 'link_current_item' => true
					'current_item_urltitle' => esc_html__( 'Link of current page (click to refresh)', 'pofo' ),
				// Style or prefix being applied as prefix to current item. E.g. <span class="bc_current">
					'current_item_style_prefix' => '',
				// Style or prefix being applied as suffix to current item. E.g. </span>
					'current_item_style_suffix' => '',
				// Maximum number of characters of post title to be displayed? 0 means no limit.
					'posttitle_maxlen' => 0,
				// Display category when displaying single blog post
					'singleblogpost_category_display' => false,
				// Prefix for single blog post category, only being used if 'singleblogpost_category_display' => true
					'singleblogpost_category_prefix' => '',
				// Suffix for single blog post category, only being used if 'singleblogpost_category_display' => true
					'singleblogpost_category_suffix' => '',
	 
			);		
		} // END function breadcrumb (constructor)

	/*==============================================================================
	    				=== DISPLAY BREADCRUMB ===
	  ============================================================================*/
		function display() {
			global $wpdb, $post, $wp_query, $wp;
			
			$bcn_homelink = '';
			if ( ($this->opt['static_frontpage'] === true) AND ($this->opt['home_display'] === true)) {		// Hide HOME if it is disabled in the options
				if ($this->opt['home_link'] === true) {			// Link home or just display text
					$bcn_homelink = '<a href="' . $this->opt['url_home'] . '" title="' . $this->opt['urltitle_prefix'] . $this->opt['title_home'] . $this->opt['urltitle_suffix'] . '">' . $this->opt['title_home'] . '</a>';
				} else {
					$bcn_homelink = $this->opt['title_home'];			
				}
			}
		
			/* -------- BLOG LINK -------- */
			$bcn_bloglink = '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a itemprop="item" href="' . home_url("/") . $this->opt['url_blog'] . '" title="' . $this->opt['urltitle_prefix'] . $this->opt['title_blog'] . $this->opt['urltitle_suffix'] . '" class="text-dark-gray-2"><span itemprop="name">' . $this->opt['title_blog'] . '</span></a><meta itemprop="position" content="1" /></li>';

			/* -------- CURRENT ITEM -------- */
			$curitem_urlprefix = '';
			$curitem_urlsuffix = '';
			if ($this->opt['link_current_item']) {
				$current_url = trailingslashit( home_url( $wp->request ) );
				$curitem_urlprefix = '<a title="' . $this->opt['current_item_urltitle'] . '" href="' . esc_url( $current_url ) . '">';
				$curitem_urlsuffix = '</a>';
			}
			
			////////////////////////////////////////////////////////////////////////
			// Get the different types
			////////////////////////////////////////////////////////////////////////

			if ( is_search() ) {
				$swg_type = 'search';		// Search
			} elseif( is_attachment() ) {
				$swg_type = 'attachment';
			} elseif ( is_page() ) {
				$swg_type = 'page';			// Page
			} elseif ( is_singular('portfolio') ) {
				$swg_type = 'portfoliosinglepost';	// Single Portfolio page
			} elseif ( is_single()) {
				$swg_type = 'singlepost';	// Single post page
			} elseif ( is_post_type_archive('portfolio') ) {
				$swg_type = 'portfolio';
			} elseif ( is_archive() && is_category() ) {
				$swg_type = 'categories';	// Weblog Categories
			} elseif( is_tag()) {
				$swg_type = 'tag';
			} elseif ( is_archive() && !is_category() ) {
				$swg_type = 'blogarchive';	// Weblog Archive
			} elseif ( is_404() ) {
				$swg_type = '404';			// 404
			} elseif (class_exists('SimpleTagging')) {
				if ( STP_IsTagView() ) {
					$swg_type = 'tag';
				}
		    } else {
				$swg_type = 'else';			// Everything else (should be weblog article list only)
		    }		
		
			/* *************************************************
				Here we set the initial array $result_array. We use this for being able
				to apply styles, anchors etc. to each element.
				Default is set to false.
			************************************************* */
			$result_array = array(
				'middle' => false,	// The part between "Home" and the last element of the breadcrumb.
				'last' => array(	// The last element of the breadcrumb
						'prefix' => false,	// prefix
						'title' => false,	// text
						'suffix' => false	// suffix
					  ) 
				);
			switch ($swg_type) {
		
			case 'page':
				////////////////////////////////////////////////////////////////////
				// Get Pages
				////////////////////////////////////////////////////////////////////
				
			
				$bcn_theparentid = $post->post_parent;	// id of the parent page

				/* For pofo */
				$page_counter = 2;
				
				$bcn_loopcount = 0;	// counter for the array
				//$bcn_titlearray = 0;
				$bcn_titlearray = array();
				while( 0 != $bcn_theparentid ) {
					// Get the row of the parent's page;
					// 	*** Regarding performance this is not a perfect solution since this query is inside a loop ! ***
					//		However, the number of queries is reduced to the number of parents.
					$mylink= $wpdb->get_row( $wpdb->prepare("SELECT post_title, post_parent FROM $wpdb->posts WHERE ID = '%s'",$bcn_theparentid) );
					// Title of parent into array incl. current permalink (via $bcn_theparentid, 
					// since we set this variable below we can use it here as current id!)

					//echo print_r($mylink);
					$page_url = get_permalink( $bcn_theparentid );
					$bcn_titlearray[$bcn_loopcount] = '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a itemprop="item" class="text-dark-gray-2" href="' . esc_url( $page_url ) . '" title="' . $this->opt['urltitle_prefix'] . $mylink->post_title . $this->opt['urltitle_suffix'] . '"><span itemprop="name">' . $mylink->post_title . '</span><meta itemprop="position" content="'.$page_counter.'" /></a></li>';
		
					// New parent ID of parent
					$bcn_theparentid = $mylink->post_parent;
		
					$bcn_loopcount++;

					$page_counter++;	
				}	// while
		
				if (is_array($bcn_titlearray)) {
					// Reverse the array since it is in a reverse order 
					$bcn_titlearray = array_reverse($bcn_titlearray);
			
					// Prepare the output by looping thru the array. We use $sep for not adding the separator before the first element
					$count = 0;
					$page_result = '';
					foreach ($bcn_titlearray as $val) {
						$sep = '';
						if (0 != $count)
							$sep = $this->opt['separator'];

						$page_result = $page_result . $sep . $val;
						
						$count++;
					}
				}

				$bcn_pagetitle = trim(get_the_title());	// page title, we do not use "$post->post_title" since it could display
				$bcn_pagetitle1= '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><span itemprop="name">'.$bcn_pagetitle.'</span><meta itemprop="position" content="'.$page_counter.'" /></li>';											// 	wrong title if theme uses more than one LOOP.

				// Result			
				// If we have a front page named 'Home' (or similar), we do not want to display the Breadcrumb like this: Home / Home
				// Therefore do not display the Home Link if such certain page is being displayed.
				if( strtolower($bcn_pagetitle) != strtolower($this->opt['title_home']) ) {  // Check if we are not on home
					if(isset($page_result)){
						if ($page_result != '') $result_array['middle'] = $page_result;
					}
					$result_array['last']['prefix'] = $this->opt['page_prefix'];
					$result_array['last']['title'] = $bcn_pagetitle1;
					$result_array['last']['suffix'] = $this->opt['page_suffix'];
				}
		
				break; // end of case 'page'
		
			case 'search':
				////////////////////////////////////////////////////////////////////
				// Get Search
				////////////////////////////////////////////////////////////////////
				$search_name = '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><span itemprop="name">'.$this->opt['title_search'].'</span><meta itemprop="position" content="2" /></li>';
				$result_array['last']['title'] = $search_name;
				
				break; // end of case 'search'
		
			case 'singlepost':
				////////////////////////////////////////////////////////////////////
				// Get single blog post
				////////////////////////////////////////////////////////////////////
				//$bcn_pagetitle = trim(wp_title('', false));	// page title, we do not use "$post->post_title" since it could display
				$bcn_pagetitle = trim(get_the_title());
															// 	wrong title if theme uses more than one LOOP.
				$result_array['middle'] = $bcn_bloglink;

				$counter = 2;
				// Add category
				if( $this->opt['singleblogpost_category_display'] === true ) {
					$category = get_the_category(); 
					
					$category_link = get_category_link( $category[0]->term_id );
					
					$result_array['middle'] .= $this->opt['separator'] . $this->opt['singleblogpost_category_prefix'] . '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a itemprop="item" class="text-dark-gray-2" href="'.esc_url( $category_link ).'" title="'.$category[0]->cat_name.'"><span itemprop="name">'.$category[0]->cat_name.'</span></a><meta itemprop="position" content="'.$counter.'" /></li>' . $this->opt['singleblogpost_category_suffix'];
					/* Custom for pofo */
					$counter++;
				}

				$result_array['last']['prefix'] = $this->opt['singleblogpost_prefix'];

				// Restrict the length of the title... 
				$bcn_post_title = $bcn_pagetitle;
				if ( ($this->opt['posttitle_maxlen'] >= 1) and ( strlen($bcn_post_title) > $this->opt['posttitle_maxlen']) )  
					$bcn_post_title = substr($bcn_post_title, 0, $this->opt['posttitle_maxlen']-1) . '...';
				$result_array['last']['title'] = '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><span itemprop="name">'.$bcn_post_title.'</span><meta itemprop="position" content="'.$counter.'" /></li>';

				$result_array['last']['suffix'] = $this->opt['singleblogpost_suffix'];

				break;
			case 'attachment':
				////////////////////////////////////////////////////////////////////
				// Get single blog post
				////////////////////////////////////////////////////////////////////
				//$bcn_pagetitle = trim(wp_title('', false));	// page title, we do not use "$post->post_title" since it could display
				$bcn_pagetitle = trim(get_the_title());
															// 	wrong title if theme uses more than one LOOP.
				$result_array['middle'] = $bcn_bloglink;

				$counter = 2;
				// Add category

				$result_array['last']['prefix'] = $this->opt['singleblogpost_prefix'];

				// Restrict the length of the title... 
				$bcn_post_title = $bcn_pagetitle;
				if ( ($this->opt['posttitle_maxlen'] >= 1) and ( strlen($bcn_post_title) > $this->opt['posttitle_maxlen']) )  
					$bcn_post_title = substr($bcn_post_title, 0, $this->opt['posttitle_maxlen']-1) . '...';
				$result_array['last']['title'] = '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><span itemprop="name">'.$bcn_post_title.'</span><meta itemprop="position" content="'.$counter.'" /></li>';

				$result_array['last']['suffix'] = $this->opt['singleblogpost_suffix'];

				break;

			case 'singlepostcategory':
	                    
				////////////////////////////////////////////////////////////////////
				// Get single blog post
				////////////////////////////////////////////////////////////////////
				$bcn_pagetitle = 'Blog';	// page title, we do not use "$post->post_title" since it could display
															// 	wrong title if theme uses more than one LOOP.
				$result_array['middle'] = $bcn_bloglink;

				// Restrict the length of the title... 
				$bcn_post_title = $bcn_pagetitle;
				if ( ($this->opt['posttitle_maxlen'] >= 1) and ( strlen($bcn_post_title) > $this->opt['posttitle_maxlen']) ) {
					$bcn_post_title = substr($bcn_post_title, 0, $this->opt['posttitle_maxlen']-1) . '...';
				}
				
				$page_url = get_permalink( get_page_by_path( ('blog')) );
				$bcn_post_title =  '<li><a href="'.esc_url( $page_url ).'">'.$bcn_post_title.'</a></li>';
				$result_array['last']['title'] = $bcn_post_title;

				$result_array['last']['suffix'] = $this->opt['singleblogpost_suffix'];

				break;
	        case 'categories':
				////////////////////////////////////////////////////////////////////
				// Get Category and Parent Categories
				////////////////////////////////////////////////////////////////////

	        	/* Pofo custom code */
	        	$cat_counter = 2;
				$result_array['middle'] = $bcn_bloglink;

				$object = $wp_query->get_queried_object();

				// Get parents of current category
				$parent_id  = $object->category_parent;
				$cat_breadcrumbs = '';
				while ($parent_id) {
					$category   = get_category($parent_id);
					$cat_breadcrumbs = '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a itemprop="item" class="text-dark-gray-2" href="' . get_category_link($category->cat_ID) . '" title="' . $this->opt['urltitle_prefix'] . $category->cat_name . $this->opt['urltitle_suffix'] . '"><span itemprop="name">' . $category->cat_name . '</span><meta itemprop="position" content="'.$cat_counter.'" /></a></li>' . $this->opt['separator'] . $cat_breadcrumbs;
					$parent_id  = $category->category_parent;
					$cat_counter++;
				}

				$result_array['last']['prefix'] = $this->opt['archive_category_prefix'];
				$result_array['last']['prefix'] .= $cat_breadcrumbs;

				$cat_name = '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><span itemprop="name">'.$object->cat_name.'</span><meta itemprop="position" content="'.$cat_counter.'" /></li>';

				// Current Category 
				$result_array['last']['title'] = $cat_name;


				$result_array['last']['suffix'] = $this->opt['archive_category_suffix'];
				break;
		
			case 'blogarchive':
				////////////////////////////////////////////////////////////////////
				// Get Blog archive
				////////////////////////////////////////////////////////////////////



				$result_array['middle'] = $bcn_bloglink;
		
				if (is_day()) {
					$archive_name = '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><span itemprop="name">'.get_the_date().'</span><meta itemprop="position" content="2" /></li>';
					// -- Archive by day
					$result_array['last']['prefix'] = $this->opt['archive_date_prefix'];
					$result_array['last']['title'] = $archive_name;
					$result_array['last']['suffix'] = $this->opt['archive_date_suffix'];

				} elseif (is_month()) {
					$archive_name = '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><span itemprop="name">'.get_the_date('F Y').'</span><meta itemprop="position" content="2" /></li>';
					// -- Archive by month
					$result_array['last']['prefix'] = $this->opt['archive_date_prefix'];
					$result_array['last']['title'] = $archive_name;
					$result_array['last']['suffix'] = $this->opt['archive_date_suffix'];
				} else if (is_year()) {
					$archive_name = '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><span itemprop="name">'.get_the_date('Y').'</span><meta itemprop="position" content="2" /></li>';
					// -- Archive by year
					$result_array['last']['prefix'] = $this->opt['archive_date_prefix'];
					$result_array['last']['title'] = $archive_name;
					$result_array['last']['suffix'] = $this->opt['archive_date_suffix'];
				} else if ( is_author() ) {
			        $archive_name = '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><span itemprop="name">'.sprintf( '%s', get_the_author() ).'</span><meta itemprop="position" content="2" /></li>';
					// -- Archive by author
					$result_array['last']['prefix'] = $this->opt['archive_date_prefix'];
					$result_array['last']['title'] = $archive_name;
					$result_array['last']['suffix'] = $this->opt['archive_date_suffix'];
    			} else {
					$tag_name = '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><span itemprop="name">'.single_tag_title("", false).'</span><meta itemprop="position" content="2" /></li>';
					$result_array['middle'] = $bcn_bloglink;
					$result_array['last']['prefix'] = $this->opt['tag_page_prefix'];
					$result_array['last']['title'] = $tag_name;
					$result_array['last']['suffix'] = $this->opt['tag_page_suffix'];
				}
		
				break;
		
			case '404':
				////////////////////////////////////////////////////////////////////
				// Get 404 error page
				////////////////////////////////////////////////////////////////////

				$result_array['last']['title'] = $this->opt['title_404'];
			
				break;
		
			case 'tag':
				/////////////////////////////////////////////
				// Get Tag Page
				/////////////////////////////////////////////
				$tag_name = '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><span itemprop="name">'.single_tag_title("", false).'</span><meta itemprop="position" content="2" /></li>';
				$result_array['middle'] = $bcn_bloglink;
				$result_array['last']['prefix'] = $this->opt['tag_page_prefix'];
				$result_array['last']['title'] = $tag_name;
				$result_array['last']['suffix'] = $this->opt['tag_page_suffix'];
		
				break; 	
		
			case 'portfolio':
				$result_array['middle'] = $bcn_bloglink;
				$pofo_portfolio_archive_title_breadcrumb_portfolio_text = get_theme_mod( 'pofo_portfolio_archive_title_breadcrumb_portfolio_text', 'Portfolio' );
				$title_portfolio = '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><span itemprop="name">'.$pofo_portfolio_archive_title_breadcrumb_portfolio_text.'</span><meta itemprop="position" content="2" /></li>';
				$result_array['last']['title'] = $title_portfolio;
			break;

			case 'portfoliosinglepost':
				////////////////////////////////////////////////////////////////////
				// Get single blog post
				////////////////////////////////////////////////////////////////////
	
				$bcn_pagetitle = trim( get_the_title() );

				$pofo_single_portfolio_enable_portfolio_text_in_breadcrumb = get_theme_mod( 'pofo_single_portfolio_enable_portfolio_text_in_breadcrumb', '0' );
				$pofo_single_portfolio_breadcrumb_text = get_theme_mod( 'pofo_single_portfolio_breadcrumb_text', 'Portfolio' );
				$pofo_single_portfolio_breadcrumb_url = get_theme_mod( 'pofo_single_portfolio_breadcrumb_url', '#' );

				$pofo_single_portfolio_breadcrumb_url = ( $pofo_single_portfolio_breadcrumb_url ) ? '<a href="'.esc_url( $pofo_single_portfolio_breadcrumb_url ).'" class="text-dark-gray-2">'.$pofo_single_portfolio_breadcrumb_text.'</a>' : $pofo_single_portfolio_breadcrumb_text;

															
				$bcn_theparentid = $post->post_parent;	// id of the parent page
				
				$bcn_loopcount = 0;	// counter for the array
				//$bcn_titlearray = 0;
				$bcn_titlearray = array();
				while( 0 != $bcn_theparentid ) {

					$mylink = $wpdb->get_row( $wpdb->prepare( "SELECT post_title, post_parent FROM $wpdb->posts WHERE ID = '%d'", $bcn_theparentid ) );
					$page_url = get_permalink( $bcn_theparentid );
					$bcn_titlearray[$bcn_loopcount] = '<li><a href="' . esc_url( $page_url ) . '" title="' . $this->opt['urltitle_prefix'] . $mylink->post_title . $this->opt['urltitle_suffix'] . '">' . $mylink->post_title . '</a></li>';
		
					// New parent ID of parent
					$bcn_theparentid = $mylink->post_parent;
					$bcn_loopcount++;	
				}	// while
		
				if (is_array($bcn_titlearray)) {
					// Reverse the array since it is in a reverse order 
					$bcn_titlearray = array_reverse($bcn_titlearray);
					$count = 0;
					$page_result = '';
					foreach ($bcn_titlearray as $val) {
						$sep = '';
						if (0 != $count)
							$sep = $this->opt['separator'];

						$page_result = $page_result . $sep . $val;
						
						$count++;
					}
				}
															// 	wrong title if theme uses more than one LOOP.
				$result_array['middle'] = $bcn_bloglink;

				$position_meta = false;
				if( get_post_type() == 'portfolio' && $pofo_single_portfolio_breadcrumb_text ){
					if( $pofo_single_portfolio_enable_portfolio_text_in_breadcrumb == 1 ){
						$result_array['middle'] .= '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><span itemprop="name">'.$pofo_single_portfolio_breadcrumb_url.'</span><meta itemprop="position" content="2" /></li>';
						$position_meta = true;
					}
					if(isset($page_result)){
						if ($page_result != '') $result_array['middle'] .= $page_result;
					}
				}

				$result_array['last']['prefix'] = $this->opt['singleblogpost_prefix'];

				// Restrict the length of the title... 
				$bcn_post_title = $bcn_pagetitle;
				if ( ($this->opt['posttitle_maxlen'] >= 1) and ( strlen($bcn_post_title) > $this->opt['posttitle_maxlen']) )  
					$bcn_post_title = substr($bcn_post_title, 0, $this->opt['posttitle_maxlen']-1) . '...';
				if( $position_meta ) {
					$result_array['last']['title'] = '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><span itemprop="name">'.$bcn_post_title.'</span><meta itemprop="position" content="3" /></li>';
				} else {
					$result_array['last']['title'] = '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><span itemprop="name">'.$bcn_post_title.'</span><meta itemprop="position" content="2" /></li>';
				}

				$result_array['last']['suffix'] = $this->opt['singleblogpost_suffix'];

				break;

			case 'else':
				////////////////////////////////////////////////////////////////////
				// Get weblog article list (which is very often the front page of the blog)
				////////////////////////////////////////////////////////////////////
				$blogTitle = get_the_title( get_option('page_for_posts', true) );
				if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) {
					$default = '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a itemprop="item" href="' . home_url("/") . $this->opt['url_blog'] . '" title="' . $this->opt['urltitle_prefix'] . $this->opt['title_blog'] . $this->opt['urltitle_suffix'] . '" class="text-dark-gray-2"><span itemprop="name">' . $this->opt['title_blog'] . '</span></a><meta itemprop="position" content="1" /></li>';

					$default .= '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><span itemprop="name">'.$blogTitle.'</span><meta itemprop="position" content="2" /></li>';
				} else {
					$default = '<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><span itemprop="name">'.$this->opt['title_blog'].'</span><meta itemprop="position" content="1" /></li>';
				}

					$result_array['last']['title'] = $default;

			} // switch

			$result_array = apply_filters( 'pofo_breadcrumb_before_dispaly_args', $result_array );

			////////////////////////////////////////////////////////////////////////////
			// Echo the result
			////////////////////////////////////////////////////////////////////////////

			// MIDDLE PART

			//		The first separator between HOME and the first entry
			$first_sep = '';	// display first separator only if HOME is disabled in the options AND it is a static front page
			if ( ($this->opt['static_frontpage'] === true) AND ($this->opt['home_display'] === true) ) {
				$first_sep = $this->opt['separator'];
			}


			// get middle part and add separator(s)
			$middle_part = '';		
			if ($result_array['middle'] === false) {
				// there is no middle part...
			
				if ($result_array['last']['title'] === false)
					$first_sep = ''; // we are on home.

			} else {
				// There is a middle part...
				$middle_part = $result_array['middle'] . $this->opt['separator'];
			}

			// LAST PART
			$last_part = '';
			if ($result_array['last']['prefix'] !== false)
				$last_part .= $result_array['last']['prefix'];

			if ($result_array['last']['title'] !== false)
				$last_part .= $curitem_urlprefix . $result_array['last']['title'] . $curitem_urlsuffix;

			if ($result_array['last']['suffix'] !== false)
				$last_part .= $result_array['last']['suffix'];

			// ECHO
			$result = "\n";

			if ($this->opt['static_frontpage'] === false) {
				if ( ($swg_type === 'page') or ($swg_type === 'search') or ($swg_type === '404') ) {
					$result .= $bcn_bloglink . $this->opt['separator'];
				}
			}

			$result .= $bcn_homelink . $first_sep . $middle_part . $this->opt['current_item_style_prefix'] . $last_part . $this->opt['current_item_style_suffix'] . "\n";
			return $result;

		} // END function display
	} // END class Pofo_Breadcrumb_Navigation
}