diff --git a/src/assets/js/search-bar-redirect.js b/src/assets/js/search-bar-redirect.js index a99bc04..0b7489a 100644 --- a/src/assets/js/search-bar-redirect.js +++ b/src/assets/js/search-bar-redirect.js @@ -13,6 +13,9 @@ function onTainacanSearchSubmit($event) { case 'posts': document['tainacan-search-form'].action = '/' + (document['tainacan-search-form'].s ? '?onlyposts=true&s=' + document['tainacan-search-form'].s.value : ''); break; + case 'pages': + document['tainacan-search-form'].action = '/' + (document['tainacan-search-form'].s ? '?onlypages=true&s=' + document['tainacan-search-form'].s.value : ''); + break; case 'global': default: document['tainacan-search-form'].action = '/' + (document['tainacan-search-form'].s ? '?s=' + document['tainacan-search-form'].s.value : ''); diff --git a/src/assets/scss/style.scss b/src/assets/scss/style.scss index 24b7e9d..d657fe2 100644 --- a/src/assets/scss/style.scss +++ b/src/assets/scss/style.scss @@ -275,7 +275,7 @@ nav{ opacity: 1.0; max-height: 400px; max-height: 100vh; - width: 260px; + width: 280px; right: -4px; } } @@ -293,7 +293,7 @@ nav{ > .dropdown-menu { top: 0; right: -4px; - width: 260px; + width: 280px; height: auto; padding: 0; left: inherit; @@ -324,10 +324,9 @@ nav{ border-bottom: 1px solid #dee2e6; border-left: 1px solid #dee2e6; border-right: 1px solid #dee2e6; - padding: 0.75rem 0.875rem 0.125rem 0.875rem; + padding: 0.75rem 0.875rem 0.5rem 0.875rem; font-size: 0.75rem; - display: flex; - flex-direction: column; + column-count: 2; label { white-space: nowrap; display: flex; @@ -337,7 +336,7 @@ nav{ } } &.show { - animation: searchFormAppear 0.4s ease; + animation: searchFormAppear 0.35s ease; } } diff --git a/src/functions.php b/src/functions.php index 31bf912..da61377 100644 --- a/src/functions.php +++ b/src/functions.php @@ -192,14 +192,18 @@ add_action( 'admin_head', 'tainacan_customize_editor_css'); */ function tainacan_include_items_in_search_results( $query ) { - if ( $query->get( 'post_type' ) !== 'tainacan-collection' && !$_GET['onlyposts'] && $query->is_main_query() && $query->is_search() && ! is_admin()) { + if ( $query->get( 'post_type' ) !== 'tainacan-collection' && !$_GET['onlyposts'] && !$_GET['onlypages'] && $query->is_main_query() && $query->is_search() && ! is_admin()) { $collections_post_types = \Tainacan\Repositories\Repository::get_collections_db_identifiers(); $existing_post_types = $query->get( 'post_type' ); if ( !is_array($existing_post_types) ) $existing_post_types = [ $existing_post_types ]; - $query->set( 'post_type', array_merge( $existing_post_types, ['post', 'tainacan-collection'], $collections_post_types ) ); + $query->set( 'post_type', array_merge( $existing_post_types, ['post', 'page', 'tainacan-collection'], $collections_post_types ) ); + } else if ( $_GET['onlypages'] && $query->is_main_query() && $query->is_search() && ! is_admin() ) { + $query->set( 'post_type', 'page' ); + } else if ( $_GET['onlyposts'] && $query->is_main_query() && $query->is_search() && ! is_admin() ) { + $query->set( 'post_type', 'posts' ); } } add_action( 'pre_get_posts', 'tainacan_include_items_in_search_results' ); diff --git a/src/functions/customizer.php b/src/functions/customizer.php index 8c6502b..3fbb6d1 100644 --- a/src/functions/customizer.php +++ b/src/functions/customizer.php @@ -127,6 +127,23 @@ function tainacan_customize_register( $wp_customize ) { 'section' => 'tainacan_header_search', 'label' => __( 'Hide search icon and input', 'tainacan-interface' ) ) ); + + /** + * Adds option to configure the Global search option label. + */ + $wp_customize->add_setting( 'tainacan_search_global_label', array( + 'type' => 'theme_mod', + 'capability' => 'edit_theme_options', + 'default' => __( 'Global', 'tainacan-interface' ), + 'sanitize_callback' => 'sanitize_text_field' + ) ); + $wp_customize->add_control( 'tainacan_search_global_label', array( + 'type' => 'text', + 'settings' => 'tainacan_search_global_label', + 'section' => 'tainacan_header_search', + 'label' => __( 'Label for "Global" search option', 'tainacan-interface' ), + 'description' => __( 'The Global search is the default. Its option will only be visible if at least one of the bellow are selected.') + ) ); // Option to search directly on repository items list $wp_customize->add_setting( 'tainacan_search_on_items', array( @@ -142,6 +159,22 @@ function tainacan_customize_register( $wp_customize ) { 'label' => __( 'Display option to search on tainacan items repository list', 'tainacan-interface' ) ) ); + /** + * Adds option to configure the Items search option label. + */ + $wp_customize->add_setting( 'tainacan_search_on_items_label', array( + 'type' => 'theme_mod', + 'capability' => 'edit_theme_options', + 'default' => __( 'Items', 'tainacan-interface' ), + 'sanitize_callback' => 'sanitize_text_field' + ) ); + $wp_customize->add_control( 'tainacan_search_on_items_label', array( + 'type' => 'text', + 'settings' => 'tainacan_search_on_items_label', + 'section' => 'tainacan_header_search', + 'label' => __( 'Label for the "items" search option', 'tainacan-interface' ) + ) ); + // Option to search directly on collections list $wp_customize->add_setting( 'tainacan_search_on_collections', array( 'type' => 'theme_mod', @@ -156,6 +189,22 @@ function tainacan_customize_register( $wp_customize ) { 'label' => __( 'Display option to search on tainacan collections list', 'tainacan-interface' ) ) ); + /** + * Adds option to configure the Collections search option label. + */ + $wp_customize->add_setting( 'tainacan_search_on_collections_label', array( + 'type' => 'theme_mod', + 'capability' => 'edit_theme_options', + 'default' => __( 'Collections', 'tainacan-interface' ), + 'sanitize_callback' => 'sanitize_text_field' + ) ); + $wp_customize->add_control( 'tainacan_search_on_collections_label', array( + 'type' => 'text', + 'settings' => 'tainacan_search_on_collections_label', + 'section' => 'tainacan_header_search', + 'label' => __( 'Label for the "Collections" search option', 'tainacan-interface' ) + ) ); + // Option to search on wordpress posts only $wp_customize->add_setting( 'tainacan_search_on_posts', array( 'type' => 'theme_mod', @@ -170,6 +219,52 @@ function tainacan_customize_register( $wp_customize ) { 'label' => __( 'Display option to search only on WordPress posts', 'tainacan-interface' ) ) ); + /** + * Adds option to configure the Posts search option label. + */ + $wp_customize->add_setting( 'tainacan_search_on_posts_label', array( + 'type' => 'theme_mod', + 'capability' => 'edit_theme_options', + 'default' => __( 'Posts', 'tainacan-interface' ), + 'sanitize_callback' => 'sanitize_text_field' + ) ); + $wp_customize->add_control( 'tainacan_search_on_posts_label', array( + 'type' => 'text', + 'settings' => 'tainacan_search_on_posts_label', + 'section' => 'tainacan_header_search', + 'label' => __( 'Label for the "Posts" search option', 'tainacan-interface' ) + ) ); + + // Option to search on wordpress pages only + $wp_customize->add_setting( 'tainacan_search_on_pages', array( + 'type' => 'theme_mod', + 'default' => false, + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'tainacan_callback_sanitize_checkbox', + ) ); + $wp_customize->add_control( 'tainacan_search_on_pages', array( + 'type' => 'checkbox', + 'settings' => 'tainacan_search_on_pages', + 'section' => 'tainacan_header_search', + 'label' => __( 'Display option to search only on WordPress pages', 'tainacan-interface' ) + ) ); + + /** + * Adds option to configure the Pages search option label. + */ + $wp_customize->add_setting( 'tainacan_search_on_pages_label', array( + 'type' => 'theme_mod', + 'capability' => 'edit_theme_options', + 'default' => __( 'Pages', 'tainacan-interface' ), + 'sanitize_callback' => 'sanitize_text_field' + ) ); + $wp_customize->add_control( 'tainacan_search_on_pages_label', array( + 'type' => 'text', + 'settings' => 'tainacan_search_on_pages_label', + 'section' => 'tainacan_header_search', + 'label' => __( 'Label for the "Pages" search option', 'tainacan-interface' ) + ) ); + /** * Social Share Links */ diff --git a/src/functions/single-functions.php b/src/functions/single-functions.php index 5b8c934..f6cc392 100644 --- a/src/functions/single-functions.php +++ b/src/functions/single-functions.php @@ -70,8 +70,8 @@ if ( ! function_exists( 'tainacan_pagination' ) ) : $count_max = ( $to_paged - 1 ) * $cur_posts; ?>