用語に長い説明がある分類法を使用しています。 WordPressが10のカテゴリについてこれらの説明を表示しようとすると、管理パネルが非常に見にくくなります。カテゴリ/用語の説明列に表示される単語や文字の数を制限する方法を見つけようとしていますが、カテゴリの説明を表示するための正しいフックが見つかりません。私はこの フックのリスト をガイドとして使っていますが、正しい方向を指していると思われる2つのフックは次のとおりです。
フィルター:manage_taxonomies_for_{$post_type}_columns
function funcy_test($empty = '', $column, $term_id)
{
return '';
}
add_filter('manage_taxonomies_for_cpt_products_columns', 'funcy_test', 10, 3);
私はそれが周りの空の列を返すことを期待したが、代わりに私は結果が表示されませんでした。考えられる解決策の1つは、Description cateogryを完全に削除してcustom_columns
フックを使用して独自のdescription列を追加することですが、これは面倒な作業にすぎません。
管理者パネルで用語の説明の単語や文字を制限する方法はありますか?
わかりました、私はこれを再検討し、私の答えを修正しました。
しかし私が前に言ったように:
あなたが使用しようとしているフックはあなたが意図している目的のためには機能しない/できない、単にその発生は
class-wp-posts-list-table.php
にあるからです。class-wp-terms-list-table.php
になります。
1。できることは次のとおりです。
admin_head-$hook_suffix
および get_terms
フックを使用する
add_action(
'admin_head-edit-tags.php',
'wpse152619_edit_tags_trim_description'
);
function wpse152619_edit_tags_trim_description() {
add_filter(
'get_terms',
'wpse152619_trim_description_callback',
100,
2
);
}
function wpse152619_trim_description_callback( $terms, $taxonomies ) {
// print_r($taxonomies);
if( 'category' == $taxonomies[ 0 ] ) {
foreach( $terms as $key => $term ) {
$terms[ $key ]->description =
wp_trim_words(
$term->description,
12,
' [...]'
);
}
}
return $terms;
}
これは、説明を指定されたWord数にトリミングします。
2。もう1つよく見られる可能性は、デフォルトの列を削除して新しい列を作成することです。
manage_{$this->screen->taxonomy}_custom_column
および manage_{$this->screen->id}_columns
フックを使用する
function wpse152619_create_new_description_column( $columns ) {
if ( $_GET[ 'taxonomy' ] == 'category' ) {
// uncomment next line to remove default description column
//unset( $columns[ 'description' ] );
// create new description column
$columns[ 'new_description' ] = 'New Description';
return $columns;
}
return $columns;
}
add_filter(
'manage_edit-category_columns',
'wpse152619_create_new_description_column'
);
function wpse152619_new_description_column_content(
$deprecated,
$column_name,
$term_id
) {
if ( $column_name == 'new_description' ) {
$new_description =
wp_trim_words(
term_description(
$term_id,
$_GET[ 'taxonomy' ]
),
12,
' [...]'
);
echo $new_description;
}
}
add_filter(
'manage_category_custom_column',
'wpse152619_new_description_column_content',
10,
3
);
3。また可能性があります:
WP_List_Table
のように、クラス WP_Terms_List_Table
を自分で拡張します。column_description
メソッドを再定義することです。edit-tags.php
に似た新しいテンプレートを作成しますが、新しく作成したクラスを使用します。私は上記があなたの問題を解決するはずだと確信しています。カテゴリ編集ページの例を示しましたが、カスタム分類法のためにこれを行う方法は明らかであるはずです。必要なものに応じて、単純なアプローチまたは複雑なアプローチを選択できます。あなたの場合、最初のものは問題ないはずです。
最後になりましたが、以下の関数は必要な情報を取得するのに便利です。
add_action( 'admin_head', 'wpse152619_dbg_dev' );
function wpse152619_dbg_dev() {
global $pagenow;
print_r( $pagenow );
echo '<br>';
print_r( $_GET[ 'taxonomy' ] );
echo '<br>';
$current_screen = get_current_screen();
print_r( $current_screen->id );
}