Wie filtere ich die Reihenfolge der Suchergebnisse?

Gibt es eine Möglichkeit, dass meine Suchergebnisse die Seiten zuerst anzeigen und nach den Seiten veröffentlichen?

Meine Site ist eine Business-Site mit einem Blog, im Gegensatz zum primären Blog. Die statischen Seiten haben alles, was wir tun, und im Idealfall würden sie zuerst auftauchen, wenn jemand nach verschiedenen Diensten sucht. Die Blogposts sind heller, aber sie sind jünger, so dass sie zuerst auftauchen.

Die Suchschleife ist vom Kubrick-Thema:

 

<div > <h3 id="post-"><a href="https://wordpress.stackexchange.com/questions/41691/how-do-i-filter-the-search-results-order/" rel="bookmark" title="">

Könnte ich etwas einfügen, um anzugeben, dass ein Ergebnis einer “Seite” vor den Ergebnissen eines “Beitrags” aufgeführt wird? Oder unterscheidet WP nicht wirklich zwischen Seiten und Beiträgen auf dieser Ebene? Da die statischen Seiten “statisch” sind, könnte ich vielleicht IDs verwenden?

Vielen Dank!

Solutions Collecting From Web of "Wie filtere ich die Reihenfolge der Suchergebnisse?"

Sie können den posts_orderby Filter verwenden, um die Reihenfolge zurückgegebener Posts zu ändern. Dies wird für jede Abfrage (Vorder- und Rückseite) is_admin . is_search Sie daher sicher, dass Sie die Reihenfolge mithilfe von is_admin , is_search usw. is_admin is_search .

Im Beispiel unten werden die Suchergebnisse nach dem Post-Typ in aufsteigender Reihenfolge sortiert (z. B. Seite, dann Post) und dann nach dem Post-Datum in absteigender Reihenfolge geordnet.

 add_filter('posts_orderby','my_sort_custom',10,2); function my_sort_custom( $orderby, $query ){ global $wpdb; if(!is_admin() && is_search()) $orderby = $wpdb->prefix."posts.post_type ASC, {$wpdb->prefix}posts.post_date DESC"; return $orderby; } 

Haftungsausschluss: Wenn Sie einen Post-Typ “Anzeige” haben und dies in den Suchergebnissen angezeigt wird, wird dies vor den Seiten angezeigt.

Der obige Haftungsausschluss ist eine relativ günstige Möglichkeit, um das zu erreichen, wonach Sie suchen.