Как отобразить по умолчанию только опубликованные посты / страницы в админке?

9

Как таковой, WordPress отображает по умолчанию все страницы / сообщения в списке страниц / сообщений в административной области, независимо от их статуса публикации.

У меня есть много черновиков, но обычно я гораздо больше интересуюсь редактированием опубликованных страниц / постов, поэтому получение только для их отображения требует еще одного клика и полной перезагрузки.

Есть ли способ настроить WordPress на первоначальное отображение только опубликованных постов / страниц, позволяя вам нажимать «Все» или «Черновик», если позже вы захотите?

yudayuda
источник
Кто-нибудь? Недавно мне несколько раз говорили, что если вы хотите получить быстрые ответы о WordPress - StackExchange - это то, что вам нужно ... Любой ответ будет оценен - ​​спасибо.
юдауда

Ответы:

5

Я не уверен, есть ли другой способ, но манипулирование глобальной переменной $submenuможет сделать эту работу.

Следующее является просто ручным взломом (я не знаю о каких-либо хуках) и может дать сбой при нестандартных настройках подменю. Обычный тип записи Post имеет уникальный адрес, а остальные типы имеют другой, следовательно, два foreachs.

add_action( 'admin_menu', 'default_published_wpse_91299' );

function default_published_wpse_91299() 
{
    global $submenu;

    // POSTS
    foreach( $submenu['edit.php'] as $key => $value )
    {
        if( in_array( 'edit.php', $value ) )
        {
            $submenu['edit.php'][ $key ][2] = 'edit.php?post_status=publish&post_type=post';
        }
    }

    // OTHER POST TYPES
    $cpt = array( 'page', 'portfolio' ); // <--- remove or adapt the portfolio post type
    foreach( $cpt as $pt )
    {
        foreach( $submenu[ 'edit.php?post_type=' . $pt ] as $key => $value )
        {
            if( in_array( 'edit.php?post_type=' . $pt, $value ) )
            {
                $submenu[ 'edit.php?post_type='.$pt ][ $key ][2] = 'edit.php?post_status=publish&post_type=' . $pt;
            }
        }   
    }
}
brasofilo
источник
2

Чтобы отобразить опубликованные страницы по умолчанию в ссылках на страницы, просто вставьте этот фрагмент кода в файл functions.php. Затем вы можете перейти на вкладку «Все», чтобы увидеть полный список страниц.

// change page link to display published pages only
function wcs_change_admin_page_link() {
    global $submenu;
    $submenu['edit.php?post_type=page'][5][2] = 'edit.php?post_type=page&post_status=publish';
}
add_action( 'admin_menu', 'wcs_change_admin_page_link' );

Если вы хотите добиться того же самого для ссылки на публикацию в панели администратора, используйте вместо этого следующий фрагмент кода.

// change post link to display published posts only
function wcs_change_admin_post_link() {
    global $submenu;
    $submenu['edit.php'][5][2] = 'edit.php?post_status=publish';
}
add_action( 'admin_menu', 'wcs_change_admin_post_link' );

Ссылка: http://www.wpcodesnippet.com/wordpress-admin/change-pages-link-display-published-pages/

боян
источник