[WP]投稿一覧にカスタム・カラムを追加する

投稿者 admin on December 12, 2012

「投稿一覧」や「固定ページ一覧」、あるいはカスタムポストタイプの一覧に項目「カラム」を加える。

これが意外と簡単。

例えば、galleryというポストタイプ一覧に【チェック】というカラムを加えるとする。

add_filter('manage_edit-gallery_columns', 'add_new_gallery_columns');

function add_new_gallery_columns($studio_columns) {
    $new_columns['cb'] = '<input type="checkbox" />';
    $new_columns['title'] = '名称';
    $new_columns['author'] = __('Author');
    $new_columns['approved'] = 'チェック';
    $new_columns['date'] = _x('Date', 'column name');
 
    return $new_columns;
}

基本的にこれでオッケーだ。ただしこれだけだと、空のカラムが出来るだけ。中身を充填する処理を加えていく。

add_action( 'manage_studio_posts_custom_column' , 'custom_studio_column', 10, 2 );


function custom_studio_column( $column, $post_id ) {
    switch ( $column ) {
      case 'place':
        $terms = get_the_term_list( $post_id , 'place' , '' , ',' , '' );
        if ( is_string( $terms ) ) {
            echo $terms;
        } else {
            echo '未設定';
        }
        break;

      case 'approved':
            echo '&lt;input type="checkbox" name="" /> ';
        break;

      case 'edit_link':
        $p = get_post($post_id);

            echo '<a target="_blank" href="'.get_bloginfo('url').'/new_studio/?pid='.$post_id.'">編集する</a>';
        break;
   

 
    }
}

 

セルが描画されるたびに呼ばれると思って良い。$post_idとカラム名を持って来るので、switchで分岐して、該当のカラムの時はこれを表示する、という処理を加えれば良い。この例ではチェックボックスを出しているが、postmetaの中のデータを表示させたり、サムネール画像を表示する、という事も出来る。

このチェックボックスに対する処理は、もちろん自前で用意しなければいけない。

詳細は割愛するが、ヒントとして、この一覧表自体が大きなGETフォームになっている。なので、&lt;input type="checkbox" name="hoge[]" value={$post_id} />というのを出力すると、$_GET[hoge]には、チェックされたアイテムのpost_IDがズラッと配列になってやってくる。これをループで回して、何かをさせれば良い。

そして、この大きなフォームの「送信ボタン」に当たるものは?

実は「適用」ボタンがそれだ。アクションを指定せずに「適用ボタン」を押すと送信されるのだ。

最後に、注意点として、このフォームを送信後はパラメータがURLに残るので、再読み込みをするとデータが再送信され、面倒なことになる。自前でリダイレクトをかけるべし。

コメントをどうぞ

投稿者 RylInsomi 日時
Cheapest Viagra Pills For Sale generic cialis Viagra Potenzmittel Holland Tadalafil Expedited Propecia Reproduccion Asistida
コメントを残す



(このメールアドレスは表示されません。)


Captcha認証コード

Captchaをクリックすると違う文字候補が出てきます。


Tags