it-swarm.com.de

Wie zeige ich Post-Meta in benutzerdefinierten Spalten für den Post-Bildschirm an?

Ich habe einen True/False-Mehrwert für Posts (Exclusive versus Curated), der über Advanced Custom Fields hinzugefügt wurde. Wie kann ich diesen Wert als Spalte in der Post-Liste (/wp-admin/edit.php) anzeigen lassen, damit Redakteure schnell über dieses Feld sortieren können?

Ich habe dieses Beispiel gefunden ( http://code.tutsplus.com/articles/add-a-custom-column-in-posts-and-custom-post-types-admin-screen--wp-24934 ) zum Hinzufügen des Post-Thumbnails, weiß aber nicht, wie man das Pull- und ACF-Feld anpasst.

Der Feldname ist company_exclusive und der Typ ist True/False.

Alle Hinweise wäre dankbar.

Bearbeiten: Ich habe diese Lösung gefunden ( http://olliebarker.co.uk/articles/2014/06/displaying-custom-fields-wordpress-admin-post-lists/ ) und den Code an meine Bedürfnisse angepasst Aber nachdem ich dies erstellt habe, werden die Felder auf dem Bildschirm wp-admin/edit.php nicht angezeigt (entweder in den Bildschirmoptionen oder sichtbar). Ich füge es zu den functions.php meines Themas hinzu. Das ist der richtige Ort, richtig?

//Adds ACF fields to Post List
add_filter('posts_columns', 'custom_posts_table_head');
function custom_posts_table_head( $columns ) {

    $columns['author_name']  = 'Author Name';
    $columns['company_exclusive']  = 'Company Exclusive?';
    $columns['region']  = 'Region';
    $columns['article_excerpt_title']  = 'Article Excerpt Title';
    return $columns;

}
add_action( 'posts_columns', 'custom_posts_table_content', 10, 2);

function bs_projects_table_content( $column_name, $post_id ) {

    if( $column_name == 'author_name' ) {
        $author_name = get_post_meta( $post_id, 'author_name', true );
        echo $author_name;
    }
    if( $column_name == 'company_exclusive' ) {
        $company_exclusive = get_post_meta( $post_id, 'company_exclusive', true );
        if( $company_exclusive == '1' ) { echo 'Yes'; } else { echo 'No'; }
    }
    if( $column_name == 'region' ) {
        $region = get_post_meta( $post_id, 'region', true );
        echo $region;
    }
    if( $column_name == 'article_excerpt_title' ) {
        $article_excerpt_title = get_post_meta( $post_id, 'article_excerpt_title', true );
        echo $article_excerpt_title;
    }

}
1
Keefer

Sie haben Ihre Aktions-/Filternamen leicht geändert:

// For registering the column
add_filter( 'manage_posts_columns', 'custom_posts_table_head' );

// For rendering the column
add_action( 'manage_posts_custom_column', 'custom_posts_table_content', 10, 2 );
4
TheDeadMedic

Ich habe folgenden Code verwendet, um die empfohlenen Produkte in der Produktliste des Admin-Panels anzugeben.

add_filter('manage_product_posts_columns', 'hs_product_table_head');
function hs_product_table_head( $columns ) {
    $columns['product_featured']  = 'Featured';
    return $columns;

}
add_action( 'manage_product_posts_custom_column', 'hs_product_table_content', 10, 2 );

function hs_product_table_content( $column_name, $post_id ) {
    if( $column_name == 'product_featured' ) {
        $featured_product = get_post_meta( $post_id, 'featured_product', true );
        if($featured_product == 1) {
            echo "Yes";
        }
    }
}

Um dies für andere Beitragstypen zu verwenden, ändern Sie den folgenden Code. Zum Beispiel - Beitragstyp ist "Portfolio"

add_filter('manage_portfolio_posts_columns', 'hs_portfolio_table_head');
add_action( 'manage_portfolio_posts_custom_column', 'hs_portfolio_table_content', 10, 2 );
1
Rijo K P

Geben Sie für Erweiterte benutzerdefinierte Felder diesen Code in functions.php ein:

add_filter( 'manage_faq_posts_columns', 'set_custom_edit_faq_columns' );    
add_action( 'manage_faq_posts_custom_column' , 'custom_faq_column', 10, 2 );

function set_custom_edit_faq_columns($columns) {    
    unset( $columns['author'] );
    $columns['is_useful'] = 'Is Useful';
    $columns['is_unless'] = 'Is Unless';
    return $columns;    
}

function custom_faq_column( $column, $post_id ) {   
    global $post;
    switch ( $column ) {
        case 'is_useful' :
            if(get_field( "is_useful", $post_id )) {
                echo get_field( "is_useful", $post_id );
            } else {
                echo 0;
            }
        break;

        case 'is_unless' :
            if(get_field( "is_unless", $post_id )) {
                echo get_field( "is_unless", $post_id );
            } else {
                echo 0;
            }
        break;    
    }   
}

function my_column_register_sortable( $columns ) {
     $columns['is_useful'] = 'is_useful';
    $columns['is_unless'] = 'is_unless';
    return $columns;
}

add_filter("manage_edit-faq_sortable_columns", "my_column_register_sortable" );
0
Julian Alvarado