Looking for support? You can access the support system via your account.
Forums › Forums › Search & Filter Pro › post type archive no data message
Tagged: post type archive
- This topic has 5 replies, 2 voices, and was last updated 4 years, 6 months ago by Trevor.
-
Pat Janik(Private) August 13, 2019 at 9:02 pm #218920
Using post type archive is there a way to display a custom message if no data is displayed?
http://mjccompanies.staging.wpengine.com/portfolio-items/?_sft_home_type=apartment
Trevor Moderator(Private) August 14, 2019 at 9:35 am #218940Is the search otherwise working?
I can see that you are using the Avada theme with a child theme I think. Do you have access to the theme template that is making this page?
If so, can you make this available to me on a file sharing site (like Dropbox, Google Drive, etc), as my guess is that it isn’t coded to handle ‘No Results’, but I may be able to fix that for you?
Pat Janik(Private) September 27, 2019 at 8:53 pm #222258I believe its this file is archive portfolio layout. which is located in: /plugins/fusion-core/templates/
https://drive.google.com/file/d/1UiVCQJo7c8TnX9sYDLpmRe6eqvfGNyuD/view?usp=sharing
Trevor Moderator(Private) September 30, 2019 at 3:33 pm #222375This is how I would change it:
<?php /** * Portfolio Template. * * @package Fusion-Core */ // Do not allow directly accessing this file. if ( ! defined( 'ABSPATH' ) ) { exit( 'Direct script access denied.' ); } if ( ! class_exists( 'Avada' ) ) { exit( 'This feature requires the Avada theme.' ); } ?> <?php global $wp_query, $fusion_library; // Get main settings and mofify as needed. $portfolio_layout_setting = Avada()->settings->get( 'portfolio_archive_layout' ); $portfolio_one_column_text_pos = Avada()->settings->get( 'portfolio_archive_one_column_text_position' ); $portfolio_text_layout = Avada()->settings->get( 'portfolio_archive_text_layout' ); $portfolio_content_length = Avada()->settings->get( 'portfolio_archive_content_length' ); $portfolio_text_alignment = Avada()->settings->get( 'portfolio_archive_text_alignment' ); $portfolio_columns_int = Avada()->settings->get( 'portfolio_archive_columns' ); $portfolio_column_spacing = Avada()->settings->get( 'portfolio_archive_column_spacing' ); $portfolio_pagination_type = Avada()->settings->get( 'portfolio_archive_pagination_type' ); $portfolio_image_size = Avada()->settings->get( 'portfolio_archive_featured_image_size' ); $portfolio_image_size_set = $portfolio_image_size; $lazy_load = Avada()->settings->get( 'lazy_load' ); if ( ! $portfolio_text_layout ) { $portfolio_text_layout = 'unboxed'; } switch ( $portfolio_columns_int ) { case 1: $portfolio_columns = 'one'; break; case 2: $portfolio_columns = 'two'; break; case 3: $portfolio_columns = 'three'; break; case 4: $portfolio_columns = 'four'; break; case 5: $portfolio_columns = 'five'; break; case 6: $portfolio_columns = 'six'; break; } $portfolio_layout = 'fusion-portfolio-' . $portfolio_columns; // Set the portfolio main classes. $portfolio_classes[] = 'fusion-portfolio fusion-portfolio-archive'; $portfolio_classes[] = 'fusion-portfolio-layout-' . $portfolio_layout_setting; $portfolio_classes[] = $portfolio_layout; // If one column layout is used, add special class for text/notext and floated. if ( 'one' === $portfolio_columns ) { if ( 'no_text' === $portfolio_text_layout ) { $portfolio_classes[] = 'fusion-portfolio-one-nontext'; } elseif ( 'floated' === $portfolio_one_column_text_pos && 'grid' === $portfolio_layout_setting ) { $portfolio_classes[] = 'fusion-portfolio-text-floated'; } } // For text layouts add the class for boxed/unboxed. if ( 'no_text' !== $portfolio_text_layout ) { $portfolio_classes[] = 'fusion-portfolio-' . $portfolio_text_layout; $portfolio_classes[] = 'fusion-portfolio-text'; $portfolio_classes[] = 'fusion-portfolio-text-' . $portfolio_text_alignment; } // Add class if rollover is enabled. if ( $fusion_settings->get( 'image_rollover' ) ) { $portfolio_classes[] = 'fusion-portfolio-rollover'; } // Set the correct image size. $portfolio_image_size = 'portfolio-' . $portfolio_columns; // Portfolio-four no longer exists. if ( 'four' === $portfolio_columns ) { $portfolio_image_size = 'portfolio-three'; } // Portfolio-six no longer exists. if ( 'six' === $portfolio_columns ) { $portfolio_image_size = 'portfolio-five'; } if ( 'full' === $portfolio_image_size_set || 'masonry' === $portfolio_layout_setting ) { $portfolio_image_size = 'full'; } $post_featured_image_size_dimensions = avada_get_image_size_dimensions( $portfolio_image_size ); // Get the column spacing. $column_spacing_class = ' fusion-col-spacing'; $column_spacing = ' style="padding:' . ( (int) ( $portfolio_column_spacing / 2 ) ) . 'px;"'; if ( 'one' === $portfolio_columns && 'grid' === $portfolio_layout_setting ) { $column_spacing_class = ''; $column_spacing = ''; } // Check pagination type. if ( 'load_more_button' === $portfolio_pagination_type ) { $portfolio_classes[] = 'fusion-portfolio-paging-load-more-button'; } elseif ( 'infinite_scroll' === $portfolio_pagination_type ) { $portfolio_classes[] = 'fusion-portfolio-paging-infinite'; } if ( Avada()->settings->get( 'portfolio_equal_heights' ) && 'grid' === $portfolio_layout_setting ) { $portfolio_classes[] = 'fusion-portfolio-equal-heights'; } // Get the correct ID of the archive. $archive_id = get_queried_object_id(); $title = true; // phpcs:ignore WordPress.WP.GlobalVariablesOverride $categories = true; // Get title and category status. if ( 'no_text' !== $portfolio_text_layout ) { $title_display = Avada()->settings->get( 'portfolio_archive_title_display' ); $title = ( 'all' === $title_display || 'title' === $title_display ) ? true : false; // phpcs:ignore WordPress.WP.GlobalVariablesOverride $categories = ( 'all' === $title_display || 'cats' === $title_display ) ? true : false; } ?> <div class="<?php echo esc_attr( implode( ' ', $portfolio_classes ) ); ?>"> <?php /** * Render category description if it is set. */ ?> <?php if ( category_description() ) : ?> <div id="post-<?php echo intval( get_the_ID() ); ?>" <?php post_class( 'post' ); ?>> <div class="post-content"> <?php echo category_description(); ?> </div> </div> <?php endif; ?> <div class="fusion-portfolio-wrapper" data-picturesize="<?php echo ( 'full' !== $portfolio_image_size ) ? 'fixed' : 'auto'; ?>" data-pages="<?php echo esc_attr( $wp_query->max_num_pages ); ?>"> <?php if ( 'masonry' === $portfolio_layout_setting ) : ?> <article class="fusion-portfolio-post fusion-grid-sizer"></article> <?php endif; ?> <?php/* @trevorsf added code here ... start */ if ( $query->have_posts() ) : /* @trevorsf added code here ... end */?> <?php while ( have_posts() ) : ?> <?php the_post(); ?> <?php if ( Avada()->settings->get( 'featured_image_placeholder' ) || has_post_thumbnail() ) : ?> <?php $element_orientation_class = ''; $element_base_padding = 0.8; $responsive_images_columns = $portfolio_columns_int; $masonry_attributes = array(); // Masonry layout, get the element orientation class. if ( 'masonry' === $portfolio_layout_setting ) { // Set image or placeholder and correct corresponding styling. if ( has_post_thumbnail() ) { $post_thumbnail_attachment = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full' ); $masonry_attribute_style = $lazy_load ? '' : 'background-image:url(' . $post_thumbnail_attachment[0] . ');'; } else { $masonry_attribute_style = 'background-color:#f6f6f6;'; } // Get the correct image orientation class. $element_orientation_class = $fusion_library->images->get_element_orientation_class( get_post_thumbnail_id() ); $element_base_padding = $fusion_library->images->get_element_base_padding( $element_orientation_class ); $masonry_column_offset = ' - ' . ( (int) $portfolio_column_spacing / 2 ) . 'px'; if ( false !== strpos( $element_orientation_class, 'fusion-element-portrait' ) ) { $masonry_column_offset = ''; } $masonry_column_spacing = ( (int) $portfolio_column_spacing ) . 'px'; if ( 'no_text' !== $portfolio_text_layout && 'boxed' === $portfolio_text_layout && class_exists( 'Fusion_Sanitize' ) && class_exists( 'Fusion_Color' ) && 'transparent' !== Fusion_Sanitize::color( $fusion_settings->get( 'timeline_color' ) ) && 0 !== Fusion_Color::new_color( $fusion_settings->get( 'timeline_color' ) )->alpha ) { $masonry_column_offset = ' - ' . ( (int) $portfolio_column_spacing / 2 ) . 'px'; if ( false !== strpos( $element_orientation_class, 'fusion-element-portrait' ) ) { $masonry_column_offset = ' + 4px'; } $masonry_column_spacing = ( (int) $portfolio_column_spacing - 4 ) . 'px'; if ( false !== strpos( $element_orientation_class, 'fusion-element-landscape' ) ) { $masonry_column_spacing = ( (int) $portfolio_column_spacing - 10 ) . 'px'; } } // Calculate the correct size of the image wrapper container, based on orientation and column spacing. $masonry_attribute_style .= 'padding-top:calc((100% + ' . $masonry_column_spacing . ') * ' . $element_base_padding . $masonry_column_offset . ');'; // Check if we have a landscape image, then it has to stretch over 2 cols. if ( '1' !== $portfolio_columns_int && 1 !== $portfolio_columns_int && false !== strpos( $element_orientation_class, 'fusion-element-landscape' ) ) { $responsive_images_columns = (int) $portfolio_columns_int / 2; } // Set the masonry attributes to use them in the first featured image function. $element_orientation_class = ' ' . $element_orientation_class; $masonry_attributes = array( 'class' => 'fusion-masonry-element-container', 'style' => $masonry_attribute_style, ); if ( $lazy_load && isset( $post_thumbnail_attachment[0] ) ) { $masonry_attributes['data-bg'] = $post_thumbnail_attachment[0]; $masonry_attributes['class'] .= ' lazyload'; } } ?> <article class="fusion-portfolio-post post-<?php echo esc_attr( $post->ID ); ?> <?php echo esc_attr( $column_spacing_class . $element_orientation_class ); ?>"<?php echo $column_spacing; // phpcs:ignore WordPress.Security ?>> <?php /** * Open portfolio-item-wrapper for text layouts. */ ?> <?php if ( 'no_text' !== $portfolio_text_layout || 'one' === $portfolio_columns ) : ?> <div class="fusion-portfolio-content-wrapper">test <?php endif; ?> <?php /** * If no featured image is present, * on one column layouts render the video set in page options. */ ?> <?php if ( ! has_post_thumbnail() && fusion_get_page_option( 'video', $post->ID ) ) : ?> <?php /** * For the portfolio one column layout we need a fixed max-width. * For all other layouts get the calculated max-width from the image size. */ ?> <?php $video_max_width = ( 'one' === $portfolio_columns && 'floated' === $portfolio_one_column_text_pos ) ? '540px' : $post_featured_image_size_dimensions['width']; ?> <div class="fusion-image-wrapper fusion-video" style="max-width:<?php echo esc_attr( $video_max_width ); ?>;"> <?php echo fusion_get_page_option( 'video', $post->ID ); // phpcs:ignore WordPress.Security ?> </div> <?php /** * On every other other layout render the featured image. */ ?> <?php else : ?> <?php if ( 'full' === $portfolio_image_size && class_exists( 'Avada' ) && property_exists( Avada(), 'images' ) ) { Avada()->images->set_grid_image_meta( array( 'layout' => 'portfolio_full', 'columns' => $responsive_images_columns, 'gutter_width' => $portfolio_column_spacing, ) ); } echo fusion_render_first_featured_image_markup( $post->ID, $portfolio_image_size, get_permalink( $post->ID ), true, false, false, 'default', 'default', '', '', 'yes', false, $masonry_attributes ); // phpcs:ignore WordPress.Security Avada()->images->set_grid_image_meta( array() ); ?> <?php endif; ?> <?php /** * If we don't have a text layout then only render rich snippets. */ ?> <?php if ( 'no_text' === $portfolio_text_layout ) : ?> <?php echo fusion_render_rich_snippets_for_pages(); // phpcs:ignore WordPress.Security ?> <?php /** * If we have a text layout render its contents. */ ?> <?php else : ?> <div class="fusion-portfolio-content"> <?php /** * Render the post title. */ ?> <?php if ( $title ) { echo avada_render_post_title( $post->ID ); // phpcs:ignore WordPress.Security } ?> <?php /** * Render the post categories. */ ?> <?php if ( $categories ) { echo '<div class="fusion-portfolio-meta">' . get_the_term_list( $post->ID, 'portfolio_category', '', ', ', '' ) . '</div>'; } ?> <?php echo fusion_render_rich_snippets_for_pages( false ); // phpcs:ignore WordPress.Security ?> <?php /** * For boxed layouts add a content separator if there is a post content and either categories or title is used. */ ?> <?php if ( 'masonry' !== $portfolio_layout_setting && 'boxed' === $portfolio_text_layout && '0' !== fusion_get_portfolio_excerpt_length( $post->ID ) && 'no_text' !== $portfolio_content_length && ( $title || $categories ) ) : ?> <?php $separator_styles_array = explode( '|', $fusion_settings->get( 'grid_separator_style_type' ) ); $separator_styles = ''; foreach ( $separator_styles_array as $separator_style ) { $separator_styles .= ' sep-' . $separator_style; } $border_color = Fusion_Color::new_color( $fusion_settings->get( 'grid_separator_color' ) ); if ( 0 === $border_color->alpha || 'transparent' === $fusion_settings->get( 'grid_separator_color' ) ) { $separator_styles .= ' sep-transparent'; } ?> <div class="fusion-content-sep<?php echo esc_attr( $separator_styles ); ?>"></div> <?php endif; ?> <div class="fusion-post-content"> <?php /** * The avada_portfolio_post_content hook. * * @hooked avada_get_portfolio_content - 10 (outputs the post content). */ do_action( 'avada_portfolio_post_content', $post->ID ); ?> <?php /** * On one column layouts render the "Learn More" and "View Project" buttons. */ ?> <?php if ( 'one' === $portfolio_columns && 'grid' === $portfolio_layout_setting ) : ?> <?php $button_span_class = ( 'yes' === $fusion_settings->get( 'button_span' ) ) ? ' fusion-portfolio-buttons-full' : ''; ?> <div class="fusion-portfolio-buttons<?php echo esc_attr( $button_span_class ); ?>"> <?php /** * Render "Learn More" button. */ ?> <a href="<?php echo esc_url_raw( get_permalink( $post->ID ) ); ?>" class="fusion-button fusion-button-small fusion-button-default fusion-button-<?php echo esc_attr( strtolower( Avada()->settings->get( 'button_shape' ) ) ); ?> fusion-button-<?php echo esc_attr( strtolower( Avada()->settings->get( 'button_type' ) ) ); ?>"> <?php esc_html_e( 'Learn More', 'fusion-core' ); ?> </a> <?php /** * Render the "View Project" button only if a project url was set. */ ?> <?php if ( fusion_get_page_option( 'project_url', $post->ID ) ) : ?> <a href="<?php echo esc_url_raw( fusion_get_page_option( 'project_url', $post->ID ) ); ?>" class="fusion-button fusion-button-small fusion-button-default fusion-button-<?php echo esc_attr( strtolower( Avada()->settings->get( 'button_shape' ) ) ); ?> fusion-button-<?php echo esc_attr( strtolower( Avada()->settings->get( 'button_type' ) ) ); ?>"> <?php esc_html_e( ' View Project', 'fusion-core' ); ?> </a> <?php endif; ?> </div> <?php endif; ?> </div><!-- end post-content --> </div><!-- end portfolio-content --> <?php endif; // End template check. ?> <?php /** * Close portfolio-item-wrapper for text layouts. */ ?> <?php if ( 'no_text' !== $portfolio_text_layout || 'one' === $portfolio_columns ) : ?> </div> <?php /** * On unboxed one column layouts render a separator at the bottom of the post. */ ?> <?php if ( 'one' === $portfolio_columns && 'boxed' !== $portfolio_text_layout && 'grid' === $portfolio_layout_setting ) : ?> <div class="fusion-clearfix"></div> <div class="fusion-separator sep-double"></div> <?php endif; ?> <?php endif; ?> </article><!-- end portfolio-post --> <?php endif; // Placeholders or featured image. ?> <?php endwhile; ?> <?php/* @trevorsf added code here ... start */ else : ?> <div class="no-results">No results found</div> <?php endif; /* @trevorsf added code here ... end */?> </div><!-- end portfolio-wrapper --> <?php /** * Render the pagination. */ ?> <?php echo fusion_pagination( '', Avada()->settings->get( 'pagination_range' ) ); // phpcs:ignore WordPress.Security ?> <?php /** * If infinite scroll with "load more" button is used. */ ?> <?php if ( 'load_more_button' === $portfolio_pagination_type && 1 < esc_attr( $wp_query->max_num_pages ) ) : ?> <div class="fusion-load-more-button fusion-portfolio-button fusion-clearfix"> <?php echo esc_attr( apply_filters( 'avada_load_more_posts_name', esc_html__( 'Load More Posts', 'fusion-core' ) ) ); ?> </div> <?php endif; ?> <?php wp_reset_postdata(); ?> </div><!-- end fusion-portfolio -->
You can see I added two blocks:
https://www.screencast.com/t/wG50IHUFw2
and:
https://www.screencast.com/t/rPRgseXm
I cannot see the name of the query array in the file. I have assumed that it is the normal
$query
, as you can see in my first code block:if ( $query->have_posts() ) :
But, looking further at the code, there is this in the file you sent at the top:
global $wp_query, $fusion_library;
So that makes me think it is
$wp_query
so my code should have been:
if ( $wp_query->have_posts() ) :
I hope that makes sense. The code is simply adding a check to see if there are any posts. If there are it runs the code you already have, or else it outputs that small no results message.
Trevor Moderator(Private) October 1, 2019 at 8:25 am #222429Thanks for letting me know. I will close this thread for now.
-
AuthorPosts
The topic ‘post type archive no data message’ is closed to new replies.