WordPress-Suche anpassen (HowTo)

Aus wiki.sehanka.de
Zur Navigation springen Zur Suche springen

Allgemeines

TBD

Vorangegangene(r) Prozess(e)

Arbeitsschritte (Prozess)

Schritt 1: Benötigte Template-Dateien anlegen & einbinden

Datei für das Template der Search Results Page anlegen

  • "/search.php"
<?php defined( 'ABSPATH' ) or die(); ?>
<?php get_header(); ?>
    <main>
        <div class="row-m">
            <div style="height:80px" aria-hidden="true" class="wp-block-spacer"></div>

            <?php function checkThumbnailUrl () {
                $thumbnail_url = get_the_post_thumbnail_url();
                if ( ! $thumbnail_url ) {
                    echo get_stylesheet_directory_uri() . '/assets/lpa-placeholder.png';
                } else {
                    echo  $thumbnail_url;
                }
            }
            ?>

	        <?php
	        $search_query = get_search_query();
	        $wp_query = new WP_Query( array('s' => $search_query) );

	        if ( $wp_query->have_posts() ) {
		        _e("<h2>Search Results for: '".$search_query."'</h2>"."<div style='height:80px' aria-hidden='true' class='wp-block-spacer'>"."</div>"."<div class='grid-1 gap-30'>");
		        while ( $wp_query->have_posts() ) :
			        $wp_query->the_post();
			        ?>
                    <a href="<?php the_permalink(); ?>" style="text-decoration: none;">
                      <p style="text-align: right; text-transform: capitalize; margin: 0;"><?php echo get_post_type(); ?></p>
                      <h3><?php echo the_title(); ?></h3>
                      <p><?php the_excerpt(); ?></p>
                    </a>
			        <?php
		        endwhile;
                _e("</div>");
	        } else { ?>
                <h2>Nothing Found</h2>

                <div class="alert alert-info">
                    <p>Sorry, but nothing matched your search criteria. Please try again with some different keywords.</p>
                </div>
	        <?php } ?>
            <div style="height:160px" aria-hidden="true" class="wp-block-spacer"></div>
        </div>
    </main>
<?php get_footer(); ?>


Datei für Funktionen der Suche

  • php/results.php
  • in functions.php
include 'php/results.php';

Schritt 1: Inhaltstypen aus Suche ausschließen

Standard-Inhaltstypen Post und Page ausschließen

  • schwierig bei den Standard-Inhaltstypen oder bei Inhaltstypen die von Plugins erstellt wurden
  • man kommt nicht ohne weiteres an den Code ran
  • folgende Code-Snippet in functions.php schreiben und den Slug des auszuschließenden Inhaltstypen verändern
//exclude posts and pages from search results
function kb_exclude_from_search($post_type){
    global $wp_post_types;

    $wp_post_types['page']->exclude_from_search = true;
    add_post_type_support( 'page', 'page-attributes' );

    $wp_post_types['post']->exclude_from_search = true;
    add_post_type_support( 'post', 'post-attributes' );
}
add_action('registered_post_type', 'kb_exclude_from_search', 10, 2 );

Custom Post Type in Plugin CPT-UI ausschließen

  • möglich auch via Einstellungen im Plugin "CPT-UI"
  • einfach in den Einstellungen des CPT "Exclude From Search" auf "true" setzen

Custom Post Type in Plugin CPT-UI ausschließen

  • einfach in den »Attributen« den Wert exclude_from_search auf true zu setzen
  • möglich auch via Einstellungen im Plugin "CPT-UI"

Schritt 2: TBD

TBD

Schritt 3: TBD

TBD

FAQ

Frage 1

TBD

Troubleshooting

Lösung 1

TBD

Nachfolgende(r) Prozess(e)

TBD via Verlinkung zu anderem(n) HowTo(s)

Quellen