WordPressの投稿一覧にデフォルトでは表示されていない項目を追加する際、その追加項目を任意の位置へ追加する方法です。
追加位置を数値で指定するのと特定の項目前に追加するのとで2通りの方法を紹介します。
位置を気にせず追加する場合
任意の位置に追加する方法を紹介する前に位置は気にせずにとりあえず項目を追加する方法を紹介すると、function.php
に下記のように記述することで実装できます。
過去に当ブログで項目追加するカスタマイズとして紹介しているものも、主にこの方法を用いています。
add_filter( 'manage_posts_columns', 'add_posts_columns' );
function add_posts_columns( $columns ) {
$columns['example01'] = 'サンプル01';
$columns['example02'] = 'サンプル02';
return $columns;
}
上記は例として「サンプル01」と「サンプル02」の2項目を追加させるもので、この方法で追加した場合はどちらもカラムの最後に新規項目として追加されます。
ただ、項目の内容的にある特定の項目前後に追加したいなど任意の位置に追加させたいというときもあると思うので、その場合は下記どちらかの方法で追加できます。
追加位置を数値で指定して追加する
任意で追加する位置を数値で指定したい場合はfunction.php
に下記のように記述し、ここでは例として「サンプル01」と「サンプル02」の2項目を追加してみます。
add_filter( 'manage_posts_columns', 'add_posts_columns' );
function add_posts_columns( $columns ) {
$i = 0;
$new_columns = [];
foreach ( $columns as $name => $display_name ) {
if ( $i === 1 ) {
$new_columns['example01'] = 'サンプル01';
} elseif ( $i === 3 ) {
$new_columns['example02'] = 'サンプル02';
}
$new_columns[$name] = $display_name;
$i++;
}
return $new_columns;
}
位置を指定する数値はデフォルトで1番左に表示されているチェックボックスから0
始まりになっているので、チェックボックスの次に項目を追加したい場合は、「サンプル01」を追加している部分のように1
を指定すれば追加できます。
特定の項目前に追加する
特定の項目前に追加したい場合はfunction.php
に下記のように記述し、ここでは例として「サンプル01」と「サンプル02」の2項目を追加してみます。
add_filter( 'manage_posts_columns', 'add_posts_columns' );
function add_posts_columns( $columns ) {
$new_columns = [];
foreach ( $columns as $name => $display_name ) {
if ( $name == 'title' ) {
$new_columns['example01'] = 'サンプル01';
} elseif ( $name == 'author' ) {
$new_columns['example02'] = 'サンプル02';
}
$new_columns[$name] = $display_name;
}
return $new_columns;
}
デフォルトで用意されている「タイトル」項目前に追加したいならif ( $name == 'title' )
、デフォルトで用意されている「作成者」項目前に追加したいならif ( $name == 'author' )
といったように、特定の項目名を条件分岐内で指定すれば、その指定した項目前に新規項目を追加することができます。
ちなみに、何らかの理由で特定の項目を「タイトル」や「作成者」といった文言で指定したい場合は、if ( $display_name == 'タイトル' )
のように条件部分で$display_name
を使えば可能です。
任意の位置に項目を追加する方法を2通り紹介しましたが、他のカスタマイズやプラグインで項目の追加・削除をされて数値指定では意図しないところに表示されてしまう可能性があるのを考えると、ここに表示したいとハッキリ決まっているなら特定の項目前に追加する方法を採用した方が無難かと思います。
また、今回はデフォルトの項目は特にいじらずでしたが、任意の位置に項目追加して且つデフォルト項目の並びも変更したいとかであれば、いっそのことまとめて指定してしまった方が条件分岐を多数記述する必要もなくなりますし、どのような順番で並んでいるかもコードを見ただけで容易に把握できるのでおすすめです。