Benutzerdefinierte Feldsummen

Ich habe versucht, überall nach diesem zu suchen, und obwohl es einige Diskussionen über das Hinzufügen des Gesamtwerts zum Frontend gibt, gibt es nichts über die Adminseite.

Ich habe einen benutzerdefinierten Post-Typ mit Posts und einen für die Felder dieser Posts ist ein Preis. Ich möchte für die Status (alle, veröffentlicht, Konzept …) die relevante Summe dieses Feldes anzeigen. Genauso wie die Status die Gesamtzahl der Posts in Prozent anzeigen.

Gibt es einen klugen Weg, dies zu tun?

Solutions Collecting From Web of "Benutzerdefinierte Feldsummen"

Holen Sie alle Post-IDs aus dem spezifischen Post-Typ, durchlaufen Sie sie und fügen Sie einfach die benutzerdefinierten Felder zusammen und zeigen die Summe unterhalb des Post-Type-Titels in der Datei edit.php an (Beachten Sie den Parameter add_filter first, den Sie ändern müssen Ihr Post-Typ Name)

add_filter('views_edit-products','products_price_sum'); function products_price_sum($views) { $args = array( 'post_type' => 'products', 'posts_per_page' => -1, 'post_status' => 'any', 'fields' => 'ids' ); $postslist = get_posts( $args ); $sum_total = 0; foreach ($postslist as $post) { $price = get_post_meta( $post, 'price', true ); $sum_total = $sum_total+$price; } //This is the sum of the price field $views['price_sum'] = 'Price Sum: '.$sum_total; return $views; } 

Hier ist die endgültige Version, die sich basierend auf dem angeklickten Status oder der Taxonomie ändert.

Zukünftige Leser müssen sich ändern:

custom_post_name – der Name des custom_post_name Ihres benutzerdefinierten custom_post_name

custom_taxonomy_name – wenn Sie einen haben, sonst nur ‘Taxonomie’

_custom_field_id – die Meta-ID des Feldes, das Sie zusammenfassen möchten

Der Grund für den Namen der benutzerdefinierten Taxonomie ist, dass ich eine Spalte mit Preisen und eine Spalte mit einer “Kategorie” habe. Wenn Sie auf einen Status klicken, sehen Sie den Preis aller benutzerdefinierten Beiträge in diesem Status, aber ich wollte den Preis basierend auf der “Kategorie” weiter filtern. Wenn Sie darauf klicken, werden nur die spezifischen Beiträge angezeigt, und der Gesamtpreis ändert sich nur zu dieser benutzerdefinierten Taxonomie.

Danke an alle für ihre Hilfe!

 foreach( array( 'custom_post_name' ) as $hook ) add_filter( "views_edit-$hook",'products_price_sum_dpf'); function products_price_sum_dpf($views) { $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); $slug = $term->slug; if ($_GET['post_status'] != NULL) { $args = array( 'post_type' => 'custom_post_name', 'posts_per_page' => -1, 'post_status' => $_GET['post_status'], 'fields' => 'ids', 'custom_taxonomy_name' => $slug ); } else { $args = array( 'post_type' => 'custom_post_name', 'posts_per_page' => -1, 'post_status' => 'test', 'custom_taxonomy_name' => $slug, 'fields' => 'ids' ); }; $postslist = get_posts( $args ); $sum_total = 0; foreach ($postslist as $post) { $price = get_post_meta( $post, '_custom_field_id', true ); $sum_total = $sum_total+$price; } //This is the sum of the price if ($_GET['post_status'] == NULL && $slug == NULL) { echo ''; } else { $views['price_sum'] = 'Total: '.$sum_total.''; } return $views; }