web-dev-qa-db-ja.com

管理者のすべての投稿に特別なフィルタリンクを追加する

自分のサイトのフロントページにおすすめの投稿スライダーがあります。カテゴリnからfeaturedの投稿(現在5件)が表示されます。そのカテゴリに5つの投稿があり、6番目に投稿した場合、6つのうち最も古い投稿が、最近の投稿の一覧のスライダーまたは下に表示されません。今の私の解決策は、All Posts> Published> Featuredに行き、機能しないものを選び、そして私の人生を続けることです。

私はもっ​​と良い解決策を提案します(注目のスライダーを修正するのはおそらくまともな反応です)が、ここで探しているのはすべての公開された注目の投稿を表示するAll Postsへのリンクを追加する方法です。

enter image description here

2
hookedonwinter

あなたの画像の中でまず第一にあなたはあなたが画像に追加したものの下にちょうどカテゴリー別に投稿をフィルタすることができることを見ることができます、しかしあなたがフィルタにあなた自身のリンクを追加する方法を知りたいならあなたはあなたを使うことができますviews_edit-postフィルタフックex:

add_action('pre_get_posts', 'query_add_filter' );
function query_add_filter( $wp_query ) {
    if( is_admin()) {
        add_filter('views_edit-post', 'Add_My_filter');
    }
}

// add filter
function Add_My_filter($views) {
    global $wp_query;
    unset($views['mine']);
    $my_cat = YOUR-CAT-ID

    $query = array(
        'author'      => $current_user->ID,
        'post_type'   => 'post',
        'post_status' => 'publish',
    'cat'         => $my_cat
    );
    $result = new WP_Query($query);
    $class = ($wp_query->query_vars['cat'] == 'featured') ? ' class="current"' : '';
    $views['publish_f'] = sprintf(__('<a href="%s"'. $class .'>Publish Featured <span class="count">(%d)</span></a>', 'publish featured'),
        admin_url('edit.php?post_status=publish&post_type=post&cat='.$my_cat),
        $result->found_posts);

    return $views;
}

YOUR-CAT-IDを実際のカテゴリIDに変更してください。

7
Bainternet