it-swarm.com.de

Automatische Sortierung der wp-admin-Beitragsliste nach einem Metaschlüssel

Ich verwende diesen folgenden Code in meiner Funktionsdatei, um einige benutzerdefinierte Spalten in meinem Nachbearbeitungsbildschirm in wp-admin auszublenden und hinzuzufügen.

Ich versuche jetzt, die Beitragsliste nach einem Beitrags-Metafeld (Nachname) zu sortieren. Ich habe viele Anleitungen dazu gelesen, aber ich kann nichts finden, das mit dem übereinstimmt, was ich habe.

Die Spalte muss nicht sortierbar sein. Die Liste soll sich automatisch nach einem benutzerdefinierten Metaschlüssel sortieren lassen. Und, nur zu Ihrer Information, ich verwende keinen benutzerdefinierten Beitragstyp. Dies ist nur der normale Beitragstyp.

Kann mich jemand in die richtige Richtung lenken, wie das geht?

    //Add a First and Last Name column to the post edit table
function topo_modify_post_table( $column ) {
    $column['first_name'] = 'First Name';
    $column['last_name'] = 'Last Name';

    return $column;
}
add_filter( 'manage_posts_columns', 'topo_modify_post_table' );


function topo_modify_post_table_row( $column_name, $post_id ) {

    $custom_fields = get_post_custom( $post_id );

    switch ($column_name) {
        case 'first_name' :
            ?><a style="font-weight:bold;" href="<?php echo admin_url(); ?>post.php?post=<? echo get_the_ID(); ?>&action=edit"><?php the_field('actor-first-name'); ?></a><?php
            break;
        case 'last_name' : ?>
            <a style="font-weight:bold;" href="<?php echo admin_url(); ?>post.php?post=<? echo get_the_ID(); ?>&action=edit"><?php the_field('actor-last-name'); ?></a><?php
            break;

        default:
    }
}

add_filter( 'manage_posts_custom_column', 'topo_modify_post_table_row', 10, 2 );




//Remove columns
add_filter('manage_post_posts_columns', 'ST4_columns_remove_category');

// REMOVE DEFAULT COLUMNS
function ST4_columns_remove_category($defaults) {
    // to get defaults column names:
    // print_r($defaults);
    unset($defaults['comments']);
    unset($defaults['date']);
    unset($defaults['author']);
    unset($defaults['title']);
    return $defaults;
}
3
Eckstein

So etwas sollte funktionieren:

function wpa84258_admin_posts_sort_last_name( $query ){
    global $pagenow;
    if( is_admin()
        && 'edit.php' == $pagenow
        && !isset( $_GET['orderby'] )
        && !isset( $_GET['post_type'] ) ){
            $query->set( 'meta_key', 'last_name' );
            $query->set( 'orderby', 'meta_value' );
            $query->set( 'order', 'ASC' );
    }
}
add_action( 'pre_get_posts', 'wpa84258_admin_posts_sort_last_name' );
4
Milo