Anwenden des $ posts_clauses-Filters nur auf bestimmte Abfragen

Ich benutze diesen Code für eine Art von Sortierung, aber es bremst einige Thementeile ab, wie “Letzte Artikel” in der Fußzeile und Inhaltsteil nach Produkten.

Ich verstehe, dass $ posts_clauses anderen Inhalt bremst, wie man es filtert?

/** * Sorting out of stock WooCommerce products - Order product collections by stock status, in-stock products first. */ class iWC_Orderby_Stock_Status { public function __construct() { // Check if WooCommerce is active if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option('active_plugins')))) { add_filter('posts_clauses', array($this, 'order_by_stock_status'), 2000); } } public function order_by_stock_status($posts_clauses) { global $wpdb; // only change query on WooCommerce loops if( is_woocommerce() && ( is_shop() || is_product_category() || is_product_tag() ) ) { $posts_clauses['join'] .= " INNER JOIN $wpdb->postmeta istockstatus ON ($wpdb->posts.ID = istockstatus.post_id) "; $posts_clauses['orderby'] = " istockstatus.meta_value ASC, " . $posts_clauses['orderby']; $posts_clauses['where'] = " AND istockstatus.meta_key = '_stock_status' AND istockstatus.meta_value  '' " . $posts_clauses['where']; } return $posts_clauses; } } new iWC_Orderby_Stock_Status; 

Solutions Collecting From Web of "Anwenden des $ posts_clauses-Filters nur auf bestimmte Abfragen"