Kategorie
Snippet WordPress

WordPress: kategoria na stronie tylko dla administratorów

Na polskim forum WordPressa bartekm zadał pytanie:

mam problem ze stworzeniem kategorii newsów która jest widoczna tylko dla administratorów bloga. Czy ktoś wie jak to zrobić?

Aby na stronie z listą nie wyświetlać wpisów z kategorii o uproszczonej nazwie „nowosci”, realizujemy to w następujący sposób:

<?php
 
add_filter( 'parse_query', 'parse_query_test_filter' );
 
function parse_query_test_filter( $query )
{
    if ( !current_user_can('administrator')  ) {
        $query->query_vars['category__not_in'][] = get_category_by_slug( 'nowosci' );
    }
    return $query;
}

Trzeba pamiętać, że taki kod nie zabezpiecza przed obejrzeniem wpisu przez innych niż „administratorzy” użytkowników. On tylko nie wyświetla takich postów na listach.