So sortieren Sie Kategorien nach benutzerdefinierten Feldwerten

Ich benutze folgendes:

$catargs = array( 'meta_key'=> 'category_custom_order', 'orderby' => 'meta_value_num', 'order'=> 'ASC', ); 

aber ich kann die Liste der Kategorie nach dem Meta-Wert-Schlüssel sortiert bekommen

Bild der Kategorie im Dashboard

Leider listet es die Kategorie immer noch nach Titel auf.

Gibt es einen besseren Weg, dies zu tun? Danke fürs Helfen.

Der vollständige Code:

   'category_custom_order', 'orderby' => 'meta_value_num', 'order'=> 'DESC', ); $categories = get_categories( $catargs ); foreach ($categories as $category) { ?> <section id="slug; ?>" class="entry-category"> 

name;// Category title ?>

description; ?>
'post', 'cat' => $category->cat_ID, 'posts_per_page' => '-1', 'order' => 'DESC', 'orderby' => 'title', ); // The Query $query = new WP_Query( $args ); // The Loop if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); ?> <article id="post-" >

<!-- #slug; ?> -->

Ich möchte nur die Kategorie nach Metaschlüsselwert aus dem enthaltenen Bild sortieren.

Ich verwende die function unten, um ein benutzerdefiniertes Feld für meine Kategorien unter dem Dashboard zu erstellen:

  /* * Add Custom Field To Category Form */ add_action( 'category_add_form_fields', 'category_form_custom_field_add', 10 ); add_action( 'category_edit_form_fields', 'category_form_custom_field_edit', 10, 2 ); function category_form_custom_field_add( $taxonomy ) { ?> 

Enter a custom order value.

term_id; $category_custom_order = get_option( $option_name ); ?> <input type="text" name="category_custom_order" id="category_custom_order" value="" size="10" aria-required="true" />

Enter a custom order value.

<?php } /** Save Custom Field Of Category Form */ add_action( 'created_category', 'category_form_custom_field_save', 10, 2 ); add_action( 'edited_category', 'category_form_custom_field_save', 10, 2 ); function category_form_custom_field_save( $term_id, $tt_id ) { if ( isset( $_POST['category_custom_order'] ) ) { $option_name = 'category_custom_order_' . $term_id; update_option( $option_name, $_POST['category_custom_order'] ); } }//end

Was ich jetzt suche, ist, wie man die Kategorienliste nach diesem kundenspezifischen Feld sortiert, das von 1 bis 5 in asc-Reihenfolge reicht?

Solutions Collecting From Web of "So sortieren Sie Kategorien nach benutzerdefinierten Feldwerten"

Deine Frage es macht Sinn für mich mein Freund aber die get_categories haben nicht die Möglichkeit, nach “meta_value_num” zu bestellen und dann nach benutzerdefinierten Feldern zu sortieren.

Was Sie tun können, ist eine Reihenfolge, nachdem Sie das Array mit der usort php-function erhalten haben:

  $all_subcategories = array('parent' => $categoryID); $categories = get_categories( $all_subcategories ); function order_categories($a, $b) { if ($a->term_id == $b->term_id) { return 0; } return ($a->term_id < $b->term_id) ? -1 : 1; } usort($categories, "order_categories"); 

Es funktioniert gut für mich. Ich habe ACF verwendet, um das Kategoriereihenfolgefeld hinzuzufügen, aber es ist in Ordnung, wie Sie es gemacht haben und sollte funktionieren.