WordPressバージョン4.9.4では、ページの分類法データを作成する方法を探しています。これが可能な場合は、(1)これがどのように機能するのか、(2)wp-adminの/edit.php?post_type=page
の新しい列の下にその分類値をどのようにリストするのかを理解したいと思います。
ありがとうございます。
これは間違いなく可能であり、そして非常に簡単です。
既存の分類法(つまりcategory
)を既存の投稿タイプ(すなわちpage
)に登録する場合は、 register_taxonomy_for_object_type()
を使用できます。例えば。:
add_action( 'init', 'wpse_register_category_tax_for_page' );
function wpse_register_category_tax_for_page() {
$taxonomy = 'category';
$object_type = 'page';
register_taxonomy_for_object_type( $taxonomy, $object_type );
}
新しい分類法を作成し、新しい/既存の投稿タイプに関連付けることもできます。この例では、分類法classification
は既存の投稿タイプpage
に関連付けられています。
add_action( 'init', 'wpse_register_custom_taxonomy', 0 );
function wpse_register_custom_taxonomy() {
// Arguments for register_taxonomy().
$args = [
'public' => true,
'hierarchical' => true,
'label' => __( 'Classification', 'textdomain' ),
'show_ui' => true,
'show_admin_column' => true,
'query_var' => 'classification',
'rewrite' => [ 'slug' => 'classification' ],
];
// Array of post types to associate with this taxonomy.
$post_types = [ 'page' ];
register_taxonomy( 'classification', $post_types, $args );
}
ここでは、パラメータ$show_admin_column
がtrue
に設定されていることに注意してください。これにより、分類列が/wp-admin/edit.php?post_type=page
画面に追加されます。
他のプラグインがclassification
分類法を登録し、$show_admin_column
パラメータをfalse
に設定したとしましょう。 register_taxonomy_args
を使用して元の設定を上書きし、分類法がadmin列に表示されるようにすることができます。
add_filter( 'register_taxonomy_args', 'wpse_edit_taxonomy_args', 10, 3 );
function wpse_edit_taxonomy_args( $args, $taxonomy, $object_type ) {
// Array of taxonomies to change arguments on.
$taxonomies = [
'classification',
];
// Set $show_admin_column to true.
if ( in_array( $taxonomy, $taxonomies ) ) {
$args[ 'show_admin_column' ] = true;
}
return $args;
}