So blenden Sie die Kategorie aus

In meiner Website habe ich etwas Codierung basierend auf der Kategorie wie in_category('featured') tun etwas. Dies gilt nur für Posts. Auch die Posts, die mit der featured Kategorie verknüpft sind, sind ebenfalls mit anderen Kategorien verknüpft. Da es nur mit der featured Kategorie verbunden ist, um es mit einem speziellen Design zu zeigen, das es ist.

Jetzt weiß ich, dass diese Frage schon viele Male zuvor diskutiert wurde, aber nicht genau das, wonach ich suche. Also, bevor Sie diese Frage herabstufen, rot es richtig.

Hier in diesem Beitrag gibt es eine schnelle Möglichkeit, die Kategorie von überall zu verstecken? Die folgende function wird bereitgestellt, um einige Kategorien auszuschließen, aber ich möchte sie nicht ausschließen. Ich möchte sie nur ausblenden.

 add_action('pre_get_posts', 'wpa_31553' ); function wpa_31553( $wp_query ) { //$wp_query is passed by reference. we don't need to return anything. whatever changes made inside this function will automatically effect the global variable $excluded = array(272); //made it an array in case you need to exclude more than one // only exclude on the front end if( !is_admin() ) { $wp_query->set('category__not_in', $excluded); } } 

Nehmen wir als Beispiel an, dass ein Beitrag mit featured Kategorie ” featured ” verknüpft ist und auch der Kategorie ” Work ” zugeordnet ist. Jetzt, wie featured kommt alphabetisch zuerst der Breadcrumb (mit Yoast SEO Breadcrumb) wird als Kategoriename angezeigt auch die Post Meta (unter den Beiträgen angezeigt) wird beide Kategorienamen angezeigt, dh featured und work .

Aus diesem Grund möchte ich die featured Kategorie komplett ausblenden, damit kein Front-End-Benutzer jemals die Idee hat, dass featured Kategorie existiert. Es wird nicht in Breadcrumb, Post-Meta, Post-Kategorie Liste, nirgendwo angezeigt. Es bleibt zwar versteckt, aber im Backend-Code funktioniert es immer noch, wenn ich versuche, mit diesen Posts innerhalb featured in_category('featured') mit in_category('featured') .

Weiß jemand, wie man diese Kategorie erhält, die (nicht ausschließende) Eigenschaft versteckt.

Solutions Collecting From Web of "So blenden Sie die Kategorie aus"

Ersetzen Sie den gesamten Aufruf von in_category (‘featured’) durch die benutzerdefinierte function inCategory (‘featured’), deklarieren Sie diese in Ihrer functions.php:

 /** * @param string $category * * @return bool */ function inCategory($category) { global $wpdb, $post; if ( ! $post) { return false; } $query = $wpdb->prepare("SELECT COUNT(t.term_id) FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN $wpdb->term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tr.object_id = %d AND tt.taxonomy = '%s' AND t.slug = '%s' ", $post->ID, 'category', $category); return (bool) $wpdb->get_var($query); } 

Fügen Sie die folgenden Filter hinzu:

 /** * @param array $terms * * @return array */ function remove_featured_category_from_frontend(array $terms) { if ( ! is_admin()) { $terms = array_filter($terms, function ($term) { if ($term->taxonomy === 'category') { return $term->slug !== 'featured'; } return true; }); } return $terms; } add_filter('get_terms', 'remove_featured_category_from_frontend'); add_filter('get_object_terms', 'remove_featured_category_from_frontend'); 

Probieren Sie es aus und lassen Sie es mich wissen.