web-dev-qa-db-ja.com

カスタム投稿タイプ管理画面に電子メール列を追加する

作成者のメールアドレスを表示する列をカスタム投稿タイプ管理画面に追加しようとしています。これを達成する方法を説明している初心者のコーダー(私など)のための何かアドバイスはありますか?私がやろうとしていることに特有のチュートリアルを探すことで私は何もしていません。

ありがとう、ショーン

1
irishrunner16

あなたがこれを試すことができるかもしれません:

add_filter('manage_edit-movie_columns', 'custom_add_new_columns');
function custom_add_new_columns( $columns ){
    $columns['author_email'] = 'Email';
    return $columns;
}
add_action('manage_movie_posts_custom_column', 'custom_manage_new_columns', 10, 2);
function custom_manage_new_columns( $column_name, $id ){
    if ('author_email'==$column_name){
     $current_item = get_post($id);
     $author_id = $current_item->post_author;
     $author_email = get_the_author_meta( 'user_email', $author_id);
     echo '<a href="mailto:'.$author_email.'">'.$author_email.'</a>';
    }
}

ここでは、カスタム投稿タイプmovieを使用しました。フックの映画Wordをあなたのカスタム投稿タイプ名に置き換える必要があります。

たとえば、CPTがflowerの場合、フックはmanage_edit-flower_columnsおよびmanage_flower_posts_custom_columnになります。

最初の関数はテーブルの列の見出しを追加します。 2番目の関数は現在の投稿に従って列の内容を追加します。

1
Nilambar