• Hi there,

    Thank you for this cool theme.

    Can you please tell how can I perform searching only in pages an not posts?

    Thanks.

    Also it would have been great to display the page search results in the same way as it displays posts’ results.

    Please advise.

Viewing 14 replies - 1 through 14 (of 14 total)
  • Create a child theme and place the following code in the functions.php of the child theme:

    function search_pages_only( $query ) {
        if ( $query->is_search ) {
            $query->set( 'post_type', 'page' );
        }
    }
    
    add_action( 'pre_get_posts', 'search_pages_only' );

    Save the file and activate the child theme.

    Moderator Kathryn Presner

    (@zoonini)

    Thanks for the custom function, Jesin!

    andreis11, does that help you out?

    Thread Starter andreis11

    (@andreis11)

    Hello hello,

    Sorry, I haven’t got the chance to implement it.

    Had tons of work to do next to that.

    At first glance, I don’t know how to create a child theme.
    But I reckon I can find tutorials over the internet.

    Are you in the same situation Kathryn?

    Hi andreis11,

    Did you read the link in my previous post about creating child theme?

    Here are the instructions for your convenience:

    1. Create a directory named motif-child inside wp-content/themes/
    2. Inside it create a file named style.css with the following code:

    /*
    Theme Name: Motif Child
    Template: motif
    */

    3. Create a file named functions.php with the following code:

    <?php
    add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
    function theme_enqueue_styles() {
        wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    }
    
    function search_pages_only( $query ) {
        if ( $query->is_search ) {
            $query->set( 'post_type', 'page' );
        }
    }
    
    add_action( 'pre_get_posts', 'search_pages_only' );

    4. Login to WP-Admin and activate the theme Motif Child.

    Are you in the same situation Kathryn?

    Kathryn is a customer support specialist (aka Happiness Engineer) at Automattic, the company behind WordPress.com and this theme ??

    Thread Starter andreis11

    (@andreis11)

    Uops! My bad!

    Hi Jesin,

    Thanks again for the help.

    Let me try it when i get home and I will give you the stats.

    All the best,
    Andrei

    Moderator Kathryn Presner

    (@zoonini)

    Great guidance from Jesin on how to set up a child theme. ??

    Here are a few more guides if you get stuck:

    https://codex.www.ads-software.com/Child_Themes
    https://op111.net/53/
    https://vimeo.com/39023468

    Let us know how you do!

    Thread Starter andreis11

    (@andreis11)

    Hi there,

    I tried, yet no results.

    here;s the link : termopane-cesaromsrl.ro

    Thanks.

    I searched for “Rulouri” and it did show up results – https://termopane-cesaromsrl.ro/?s=Rulouri

    The titles are hidden on the search results because of the following CSS:

    .single .entry-title, .page .entry-title {
      display: none;
      margin-bottom: 0;
    }
    Thread Starter andreis11

    (@andreis11)

    I modified the child’s style.css to:

    .single .entry-title, .page .entry-title {
      display: inline !important;
      margin-bottom: 0;
    }

    and I added to the “rulouri’ page:

    .page .entry-title {
      display: none !important;
      margin-bottom: 0;
    }
    .entry-thumbnail {
      display: none;
    }

    In the idea, that the 2nd and 3rd css block applies only to that page, but it seems it applies even to the search result page.

    Can I do that?

    Display title and featured image only to the search results page?

    Thank you.

    Moderator Kathryn Presner

    (@zoonini)

    Adding this CSS below your existing CSS in your child theme should re-show the titles and thumbnails on search results pages, which have two separate classes (search-no-results & search-results) depending on whether the page has results or not:

    .search-no-results .entry-title, .search-no-results .entry-thumbnail, .search-results .entry-title, .search-results .entry-thumbnail {
     display: inherit;
    }

    FWIW, that function should be wrapped in

    if ( !is_admin() && $query->is_main_query() )

    so it won’t affect anything else.

    pre_get_posts
    https://codex.www.ads-software.com/Plugin_API/Action_Reference/pre_get_posts

    Thread Starter andreis11

    (@andreis11)

    Kathryn, thank you but still doesn’t work.

    My childs css is:

    /*submit search button dissapear*/
    input.search-submit {
      display: none;
    }
    
    .search-no-results .entry-title, .search-no-results .entry-thumbnail, .search-results .entry-title, .search-results .entry-thumbnail {
     display: inherit;
    }
    
    .single .entry-title, .page .entry-title {
      display: none;
      margin-bottom: 0;
    }

    The “rulouri” page has this css:

    .entry-title {
      display: none;
      margin-bottom: 0;
    }
    
    .entry-thumbnail {
      display: none;

    Site: termopane-cesaromsrl.ro

    If you search for: “rulou”, you will see that it displays the featured image (that doesn’t appear on the page), but still, the title doesn’t show up.

    Moderator Kathryn Presner

    (@zoonini)

    Could you tell me exactly what “title” you expecting to see?

    If you search for: “rulou”, you will see that it displays the featured image (that doesn’t appear on the page), but still, the title doesn’t show up.

    I’m seeing the page title on this page:

    https://termopane-cesaromsrl.ro/?s=rulou

    Screenshot: https://cloudup.com/cBJH_Ea9NZK

    <h1 class="page-title">
    Rezultatele cautarii pentru:
    <span>rulou</span>
    </h1>

    If you let me know the words you’re expecting to see there but are not, that would be helpful for troubleshooting. Thanks.

    Try this:

    .search-results .entry-title {
      display: block;
    }
Viewing 14 replies - 1 through 14 (of 14 total)
  • The topic ‘Search within pages, not posts’ is closed to new replies.