web-dev-qa-db-ja.com

All posts管理コンソールページにtag-by-tagを追加

デフォルトでは、「すべての投稿」ページに次のフィルタが含まれています。

  • 日付順
  • カテゴリ別

「タグで」追加することができる方法はありますか?enter image description here

1
Prakash Raman

別のフィルタを追加するには、ユーザ'restrict_manage_posts' filter。 functions.phpで次のコードを使用してください。

function kc_add_taxonomy_filters() {
global $typenow;

// an array of all the taxonomyies you want to display. Use the taxonomy name or slug
$my_taxonomies = array(  'post_tag' );
switch($typenow){

    case 'post':

        foreach ($my_taxonomies as $tax_slug) {


                    $tax_obj = get_taxonomy($tax_slug);
                    $tax_name = $tax_obj->labels->name;
                    $terms = get_terms($tax_slug);
                    if(count($terms) > 0) {
                        echo "<select name='$tax_slug' id='$tax_slug' class='postform alignleft actions'>";
                        echo "<option value=''>Show All $tax_name</option>";
                        foreach ($terms as $term) {
                            echo '<option value="', $term->slug,'" ',selected( @$_GET[$tax_slug] == $term->slug , $current = true, $echo = false ) , '>' , $term->name ,' (' , $term->count ,')</option>';
                        }
                        echo "</select>";
                    }

        }


    break;
}
}
add_action( 'restrict_manage_posts', 'kc_add_taxonomy_filters' );
3
Dipesh KC

このコミュニティからの助けが全くなくて、それがばかげている評判規則であるので、私はそれが正しく機能するように上記のコードを修正する方法を考え出しました。

次のコードはwp-includes/functions.phpに入る必要があります。 select名をtagにハードコードしたことに注目してください。これは、WP filterクエリ文字列が現在どのように機能するかのように思われます。

function kc_add_taxonomy_filters() {
global $typenow;

// an array of all the taxonomyies you want to display. Use the taxonomy name or slug
$my_taxonomies = array(  'post_tag' );
switch($typenow){

    case 'post':

        foreach ($my_taxonomies as $tax_slug) {


                    $tax_obj = get_taxonomy($tax_slug);
                    $tax_name = $tax_obj->labels->name;
                    $terms = get_terms($tax_slug);
                    if(count($terms) > 0) {
                        echo "<select name='tag' id='$tax_slug' class='postform alignleft actions'>";
                        echo "<option value=''>Show All $tax_name</option>";
                        foreach ($terms as $term) {
                            echo '<option value="', $term->slug,'" ',selected( @$_GET[$tax_slug] == $term->slug , $current = true, $echo = false ) , '>' , $term->name ,' (' , $term->count ,')</option>';
                        }
                        echo "</select>";
                    }

        }


    break;
}
}  

それからアクションはあなたのテーマのfunctions.phpファイル(wp-content/themes/YOURTHEME/functions.php)に入る必要があります。

add_action( 'restrict_manage_posts', 'kc_add_taxonomy_filters' );
0
TPD