Centre the Nav Menu with One Link on Right

Hello, I have a primary menu with six items: Products, Catalogues, Projects, About, Contact, and Login or Register. I want to position the first five items at the centre of the website’s width and have the last item (Login or Register) be at the far right. How can I achieve this?

Any help will be appreciated, thank you!

Hello, I have enabled Pro Header and rebuilt my global nav menu. However, the header landmark that used to display titles for archives like the shop page, category archives, etc. are now disabled.

I created another Pro Header for the shop page, but I can’t apply it to all subsequent WooCommerce archives pages like category archives.

For now, I followed this post to add back in the header landmark, but I’m getting these notices:

Notice: Undefined offset: 0 in […]/public_html/wp-content/themes/pro-child/functions.php on line 107
Notice: Trying to get property of non-object in […]/public_html/wp-content/themes/pro-child/functions.php on line 107

Code from that post is below:


add_shortcode('header_landmark','header_landmark');
function header_landmark ( $atts ) {

ob_start();

$disable_page_title = get_post_meta( get_the_ID(), '_x_entry_disable_page_title', true );
$disable_filters    = get_post_meta( get_the_ID(), '_x_portfolio_disable_filtering', true );
$category = get_the_category();
$firstCategory = $category[0]->cat_name;
?>

<?php if ( is_home() && x_get_option( 'x_integrity_blog_header_enable' ) == '1' ) : ?>

	<header class="x-header-landmark x-container max width">
		<h1 class="h-landmark"><span><?php echo x_get_option( 'x_integrity_blog_title' ); ?></h1>
		<p class="p-landmark-sub"><span><?php echo x_get_option( 'x_integrity_blog_subtitle' ); ?></span></p>
	</header>

<?php elseif ( is_single() ) : ?>

	<header class="x-header-landmark x-container max width">
		<h1 class="h-landmark"><span><?php echo get_the_title(); ?></span><span style="padding: 0 20px;">/</span><span><?php echo firstCategory; ?></span></h1>
	</header>

<?php elseif ( is_search() ) : ?>

	<header class="x-header-landmark x-container max width">
		<h1 class="h-landmark"><span><?php _e( 'Search Results', '__x__' ); ?></span></h1>
		<p class="p-landmark-sub"><span><?php _e( "Below you'll see everything we could locate for your search of ", '__x__' ); echo '<strong>&ldquo;'; the_search_query(); echo '&rdquo;</strong>'; ?></span></p>
	</header>

<?php elseif ( is_category() || x_is_portfolio_category() ) : ?>

	<?php

	$meta     = x_get_taxonomy_meta();
	$title    = ( $meta['archive-title']    != '' ) ? $meta['archive-title']    : __( 'Category Archive', '__x__' );
	$subtitle = ( $meta['archive-subtitle'] != '' ) ? $meta['archive-subtitle'] : __( "Below you'll find a list of all posts that have been categorized as ", '__x__' ) . '<strong>&ldquo;' . single_cat_title( '', false ) . '&rdquo;</strong>';

	?>

	<header class="x-header-landmark x-container max width">
		<h1 class="h-landmark"><span><?php echo $title ?></span></h1>
		<p class="p-landmark-sub"><span><?php echo $subtitle ?></span></p>
	</header>

<?php elseif ( x_is_product_category() ) : ?>

	<?php

	$meta     = x_get_taxonomy_meta();
	$title    = ( $meta['archive-title']    != '' ) ? $meta['archive-title']    : __( 'Category Archive', '__x__' );
	$subtitle = ( $meta['archive-subtitle'] != '' ) ? $meta['archive-subtitle'] : __( "Below you'll find a list of all items that have been categorized as ", '__x__' ) . '<strong>&ldquo;' . single_cat_title( '', false ) . '&rdquo;</strong>';

	?>

	<header class="x-header-landmark x-container max width">
		<h1 class="h-landmark"><span><?php echo $title ?></span></h1>
		<p class="p-landmark-sub"><span><?php echo $subtitle ?></span></p>
	</header>

<?php elseif ( is_tag() || x_is_portfolio_tag() ) : ?>

	<?php

	$meta     = x_get_taxonomy_meta();
	$title    = ( $meta['archive-title']    != '' ) ? $meta['archive-title']    : __( 'Tag Archive', '__x__' );
	$subtitle = ( $meta['archive-subtitle'] != '' ) ? $meta['archive-subtitle'] : __( "Below you'll find a list of all posts that have been tagged as ", '__x__' ) . '<strong>&ldquo;' . single_tag_title( '', false ) . '&rdquo;</strong>';

	?>

	<header class="x-header-landmark x-container max width">
		<h1 class="h-landmark"><span><?php echo $title; ?></span></h1>
		<p class="p-landmark-sub"><span><?php echo $subtitle; ?></span></p>
	</header>

<?php elseif ( x_is_product_tag() ) : ?>

	<?php

	$meta     = x_get_taxonomy_meta();
	$title    = ( $meta['archive-title']    != '' ) ? $meta['archive-title']    : __( 'Tag Archive', '__x__' );
	$subtitle = ( $meta['archive-subtitle'] != '' ) ? $meta['archive-subtitle'] : __( "Below you'll find a list of all items that have been tagged as ", '__x__' ) . '<strong>&ldquo;' . single_tag_title( '', false ) . '&rdquo;</strong>';

	?>

	<header class="x-header-landmark x-container max width">
		<h1 class="h-landmark"><span><?php echo $title; ?></span></h1>
		<p class="p-landmark-sub"><span><?php echo $subtitle; ?></span></p>
	</header>

<?php elseif ( is_404() ) : ?>

	<header class="x-header-landmark x-container max width">
		<h1 class="h-landmark"><span><?php _e( 'Oops!', '__x__' ); ?></span></h1>
		<p class="p-landmark-sub"><span><?php _e( "You blew up the Internet. ", '__x__' ); ?></span></p>
	</header>

<?php elseif ( is_year() ) : ?>

	<header class="x-header-landmark x-container max width">
		<h1 class="h-landmark"><span><?php _e( 'Post Archive by Year', '__x__' ); ?></span></h1>
		<p class="p-landmark-sub"><span><?php _e( "Below you'll find a list of all posts from ", '__x__' ); echo '<strong>'; echo get_the_date( 'Y' ); echo '</strong>'; ?></span></p>
	</header>

<?php elseif ( is_month() ) : ?>

	<header class="x-header-landmark x-container max width">
		<h1 class="h-landmark"><span><?php _e( 'Post Archive by Month', '__x__' ); ?></span></h1>
		<p class="p-landmark-sub"><span><?php _e( "Below you'll find a list of all posts from ", '__x__' ); echo '<strong>'; echo get_the_date( 'F, Y' ); echo '</strong>'; ?></span></p>
	</header>

<?php elseif ( is_day() ) : ?>

	<header class="x-header-landmark x-container max width">
		<h1 class="h-landmark"><span><?php _e( 'Post Archive by Day', '__x__' ); ?></span></h1>
		<p class="p-landmark-sub"><span><?php _e( "Below you'll find a list of all posts from ", '__x__' ); echo '<strong>'; echo get_the_date( 'F j, Y' ); echo '</strong>'; ?></span></p>
	</header>

<?php elseif ( x_is_portfolio() ) : ?>
	<?php if ( $disable_page_title != 'on' || $disable_filters != 'on' ) : ?>

		<header class="x-header-landmark x-container max width">
			<?php if ( $disable_page_title != 'on' ) : ?>
				<h1 class="h-landmark"><span><?php the_title(); ?></span></h1>
			<?php endif; ?>
			<?php x_portfolio_filters(); ?>
		</header>

	<?php endif; ?>
<?php elseif ( x_is_shop() && x_get_option( 'x_integrity_shop_header_enable' ) == '1' ) : ?>

	<header class="x-header-landmark x-container max width">
		<h1 class="h-landmark"><span><?php echo x_get_option( 'x_integrity_shop_title' ); ?></span></h1>
		<p class="p-landmark-sub"><span><?php echo x_get_option( 'x_integrity_shop_subtitle' ); ?></span></p>
	</header>

<?php elseif ( x_is_buddypress() ) : ?>
	<?php if ( x_buddypress_is_component_with_landmark_header() ) : ?>

		<header class="x-header-landmark x-container max width">
			<h1 class="h-landmark"><span><?php echo x_buddypress_get_the_title(); ?></span></h1>
			<p class="p-landmark-sub"><span><?php echo x_buddypress_get_the_subtitle(); ?></span></p>
		</header>

	<?php endif; ?>
<?php endif;

return ob_get_clean();

}

Edit: For now I have added the following check to prevent those notices:

if (isset($array[0])) {
  $firstCategory = $category[0]->cat_name;
}

So my questions are:

1. How can I apply a Pro Header to not just the shop page but all WooCommerce archives pages?
2. How can I restore header landmarks without running into those notice errors?

Thank you!

Hi @jessebrito,

Thank you for writing in, At the moment, there isn’t a way to assign a custom header for the shop and the product category pages. This has already been added to our enhancements list and our developers are already aware of this.

While that is outside the scope of support, I could point you in the right direction with the understanding that it would ultimately be your responsibility to take it from here. Please take a look at the following articles.

https://codex.wordpress.org/Conditional_Tags

You can recreate the header landmark on your custom header with a Bar, Breadcrumbs element and a dynamic Headline element. More about the Dynamic Content feature here.

Cheers!

Hello,

Thank you, I understand. Looking forward to those enhancements!

As for what I’m trying to achieve, I have gotten it to work by following a couple existing discussions about this particular issue.

As mentioned, I have resolve those notice errors by adding the following check to the previous code in my child theme’s functions.php:

if (isset($array[0])) {
  $firstCategory = $category[0]->cat_name;
}

I then added the following line of code to a file named woocommerce.php in /pro-child/framework/views/integrity, above <div class="x-container max width offset>":

<?php echo do_shortcode('[awesome_landmark]'); ?>

The same code can be added to the file wp-index.php for blogs, etc.

Hey @jessebrito,

Yes your code will get rid of the notices and thank you for sharing the solution with us.

Cheers!

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.