manage_edit-post_columnsでカスタムフィールドが追加されないとき

無題

カスタムフィールドは、記事投稿画面や「function.php」で「manage_edit-post_columns」を追加することで増やすことができると思います。

 投稿記事一覧画面の「表示する項目」にあるこういうのです。

無題

無題

 ただ、オリジナルのテーマは使っていると、記事投稿画面や「function.php」のカスタムフィールドが効かなくなることがあります。

 私が使っているテーマもそうでした。

原因

 私の場合は、テーマのphpファイルに書かれているmanage_edit-post_columnsのプログラムに問題がありました。
 
[manage_edit-post_columnsが書かれているファイル.php]

function add_new_post_columns($post_columns){
    // 配列を上書きしている
    $post_columns = array(
        //(省略)
    );
    return $post_columns;
}
add_filter("manage_edit-post_columns", "add_new_post_columns");

 「$post_columns」に配列を代入しているところが原因です。

 一般的な「manage_edit-post_columns」のプログラムを加えるときは、配列を上書きではなく要素を追加するようにするプログラムを書くと思います。

function add_new_post_columns($post_columns){
    // 配列を上書きしている
    $post_columns['追加フィールド'] = "フィールド名";
    return $post_columns;
}
add_filter("manage_edit-post_columns", "add_new_post_columns");

 こうすることで、他のフィールドを保持したまま、新しいフィールドが追加されます。

 おそらく私が使ってるテーマは、他のフィールドは使えない仕様にするためにarray配列を追加したのかもしれません。

 これが「function.php」に書いてあれば、すぐ解決できたのですが、別ファイルに書いてあった上に元々原因が分からなかったので苦労しました。

解決策

 上のソースコードを見れば、お分かりだと思いますが、配列の代入をやめれば、別のカスタムフィールドが表示されるようになります。
 
[manage_edit-post_columnsが書かれているファイル.php]

function add_new_post_columns2($post_columns){
    // 配列の各要素を追加する形で書きましょう
    $post_columns['追加フィールドA'] = "フィールド名A";
    $post_columns['追加フィールドB'] = "フィールド名B";
    $post_columns['追加フィールドC'] = "フィールド名C";
    // ・・・

    return $post_columns;
}
add_filter("manage_edit-post_columns", "add_new_post_columns2");

 ※ちなみに、配列に書かれている「cb」や「title」、「author」、「comments」、「date」は元々登録されているので追加は不要だと思います。

 これで追加したフィールドが表示されるようになりました。

 お疲れ様でした。

Sponsored link

便利な商品紹介

オムロン クッションマッサージャ(マッサージクッション) HM-341-BG ベージュ

意外と気持ち良い

富士通 FUJITSU ScanSnap iX500 (A4/両面/Wi-Fi対応) FI-IX500A

自炊するならやっぱり持っておきたい。せっかくスキャンするならOCR付きにしておくに越したことはない。

Zenback

コメント

ブックマーク

ブログランキング

ページ上部へ戻る