>> ACTION: absolute_weaver_nav <<< ================================
if ( ! has_action( 'absolute_weaver_nav' ) ) { // pluggable
add_action( 'absolute_weaver_nav', 'absolute_weaver_nav_action' );
function absolute_weaver_nav_action( $where ) {
// displays primary and secondary menus in the proper place
switch ( $where ) {
case 'top':
if ( absolute_weaver_getopt( 'm_primary_move' ) ) {
get_template_part( 'template-parts/menu', 'primary' );
}
break;
case 'bottom':
default:
if ( ! absolute_weaver_getopt( 'm_primary_move' ) ) {
get_template_part( 'template-parts/menu', 'primary' );
}
break;
}
}
}
//--
/* --------------------------------- CALLBACKS -------------------------------
*
*/
// ============================================= >>> CALLBACK: absolute_weaver_page_menu_cb <<< ======================================
function absolute_weaver_page_menu_cb( $args = array() ) {
// this is the callback for the default menu
$defaults = array( 'sort_column' => 'menu_order, post_title', 'menu_class' => 'wvrx-menu', 'echo' => true, 'link_before' => '', 'link_after' => '' );
$args = wp_parse_args( $args, $defaults );
$menu = '';
$list_args = $args;
if ( absolute_weaver_getopt( 'menu_nohome' ) ) {
$args['show_home'] = false;
} else {
$args['show_home'] = true;
}
// look for pages to hide from menu
// Show Home in the menu
if ( $args['show_home'] ) {
$text = esc_html__( 'Home', 'absolute-weaver' );
$class = 'class="default-home-menu-item"';
if ( is_home() || is_front_page() ) {
$class = 'class="default-home-menu-item current_page_item"';
}
$menu .= '
\n";
// okay, gotta fetch the_post for this post so that it will be properly intercepted by the page builder
$args = array(
'p' => $post_id, // ID of a page, post, or custom type
'post_type' => 'any',
);
$use_posts = new WP_Query( $args );
while ( $use_posts->have_posts() ) {
$use_posts->the_post();
$out .= '
';
$out .= apply_filters( 'the_content', get_the_content() );
$out .= "
\n";
}
wp_reset_query(); // undo our WP_Query
wp_reset_postdata();
$out .= "
\n";
return $out;
/* if ( $postid ) {
$extra = '' . get_post_field( 'post_content', $postid ) . '';
$c_class .= ' wvrx-header-html-has-post';
} */
}
add_filter( 'absolute_weaver_page_builder_content', 'absolute_weaver_page_builder_content_filter', 10, 3 );
function absolute_weaver_replace_pb_area_filter( $area ) {
//if have echoed content successfully, otherwise, return $area
//return $area; // default - no replacement
$use_id = absolute_weaver_area_replacement_id( $area );
if ( $use_id == 'none' ) // no replacement area defined
{
return $area;
}
$before = '';
$after = '';
if ( $area == 'header' ) {
$before = ' \n";
}
switch ( $area ) {
case 'header':
$title = esc_html( apply_filters( 'absolute_weaver_site_title', get_bloginfo( 'name', 'display' ) ) );
$before .= "
{$title}
";
$hide_menus = false;
if ( absolute_weaver_get_per_page_value( '_pp_pb_header_hide_menus' ) == 'show' ) {
$hide_menus = false;
} elseif ( absolute_weaver_get_per_page_value( '_pp_pb_header_hide_menus' ) == 'hide' || absolute_weaver_getopt( 'pb_header_hide_menus' ) ) {
$hide_menus = true;
}
if ( ! $hide_menus ) {
do_action( 'absolute_weaver_nav', 'top' );
} // ======== TOP MENU
absolute_weaver_echo_sanitized_html( $before );
absolute_weaver_echo_sanitized_html( absolute_weaver_page_builder_content_filter( $use_id, $area ) );
absolute_weaver_echo_sanitized_html( $after );
if ( ! $hide_menus ) {
do_action( 'absolute_weaver_nav', 'bottom' );
} // ======== BOTTOM MENU
break;
case 'footer':
absolute_weaver_echo_sanitized_html( $before );
absolute_weaver_echo_sanitized_html( absolute_weaver_page_builder_content_filter( $use_id, $area ) );
absolute_weaver_echo_sanitized_html( $after );
break;
default:
return $area; // return name in if not legal area
}
return 'displayed'; // different than $area in
}
add_filter( 'absolute_weaver_replace_pb_area', 'absolute_weaver_replace_pb_area_filter' );
function absolute_weaver_area_replacement_id( $area ) {
// build a value for a page builder header/footer replacement page/post
// per page first...
// 'pb_header_replace_page_id' and 'pb_footer_replace_page_id' have 1st priority
// 'elementor_header_replacement' and 'elementor_footer_replacement' are 2nd
// 'siteorigin_header_replacement' and 'siteorigin_footer_replacement' are 3rd
// return 'none' if none are set
$use_id = absolute_weaver_get_per_page_value( "_pp_pb_{$area}_replace_page_id" );
if ( ! $use_id || $use_id == 'none' ) {
$use_id = absolute_weaver_get_per_page_value( "_pp_elementor_{$area}_replacement" );
}
if ( ! $use_id || $use_id == 'none' ) {
$use_id = absolute_weaver_get_per_page_value( "_pp_siteorigin_{$area}_replacement" );
}
if ( ! $use_id || $use_id == 'none' ) {
$use_id = absolute_weaver_getopt( "pb_{$area}_replace_page_id" );
}
if ( ! $use_id || $use_id == 'none' ) {
$use_id = absolute_weaver_getopt( "elementor_{$area}_replacement" );
}
if ( ! $use_id || $use_id == 'none' ) {
$use_id = absolute_weaver_getopt( "siteorigin_{$area}_replacement" );
}
if ( ! $use_id || $use_id == 'none' ) {
return 'none';
}
return $use_id;
}