Visualizzare solo i post di una certa categoria nella sezione Admin di WordPress?

11 lug 2016, 16:16:21
Visualizzazioni: 18.4K
Voti: 2

Voglio aggiungere una nuova voce al menu dei post che mostri solo i post di una determinata categoria. Aggiungere una nuova pagina è semplice se si tratta solo di un nuovo tipo di post. Ma voglio mostrare solo i post con una categoria specifica e assicurarmi che la categoria sia selezionata quando aggiorno i post.

Non esiste un modo per farlo? Speravo in qualche funzione semplice, come fa register_post_type(). Dato che sembra non esserci, qualcuno può darmi qualche suggerimento su come procedere? È addirittura possibile? O dovrei semplicemente usare un tipo di post personalizzato?

8
Commenti

Sì, naturalmente è possibile elencare i post di una certa categoria! Ma per chiarire il tuo problema, puoi spiegare cosa intendi con "Voglio aggiungere un nuovo punto al menu"?

TheDeadMedic TheDeadMedic
11 lug 2016 16:48:50

Voglio una pagina esattamente come tutti i post, ma che mostri solo i record della categoria x. Voglio anche utilizzare il filtro di aggiornamento post per assicurarmi che in questa pagina gli elementi abbiano selezionata la categoria x. So che esiste una variabile di query string "cat", ma come posso aggiungere una nuova pagina come sottopagina dei post che elenchi solo i post della categoria x???

Qualcosa del genere forse??? wp_create_list_table({cat: 'x'}); Vedo come aggiungere una sottopagina, ma devo creare il contenuto manualmente... ma come??? Quali metodi devono essere chiamati per fare tutto ciò che fa la pagina di tutti i post?

Arnold Rimmer Arnold Rimmer
11 lug 2016 17:38:05

Giusto per chiarire, questo è per il backend (amministratore) non per il front end.

Arnold Rimmer Arnold Rimmer
11 lug 2016 17:51:11

Mi scuso se hai già risposto a questa domanda e non l'ho colto, o se ho frainteso il tuo problema. Ma perché non potresti semplicemente usare il filtro per categoria dalla lista di tutti i post?

Jeff Cohan Jeff Cohan
11 lug 2016 22:10:04

Perché alcuni clienti vogliono una pagina separata per la categoria, hanno tantissimi post. Ho suggerito di usare quel filtro ma vogliono semplicemente un link a una pagina già pronta.

Arnold Rimmer Arnold Rimmer
12 lug 2016 10:22:13

La risposta di Milo fa quello che vuoi, ma perché non usare un custom post type? Se i post in quella categoria sono completamente separati dagli altri post allora ha senso che dovrebbero essere nel loro post type.

Andy Andy
13 lug 2016 15:44:46

Sì, ci ho pensato ma non ero sicuro se fosse necessario. È normale che i siti WP creino molti tipi di post personalizzati? Pensavo che forse dovresti farlo solo se assolutamente necessario. Vengo da un background TYPO3 quindi sto ancora cercando di scoprire il modo di fare le cose in Wordpress. Grazie per il tuo aiuto, ho accettato la risposta di Milos per questo.

Arnold Rimmer Arnold Rimmer
14 lug 2016 16:25:15

Userei sempre un tipo di post personalizzato in casi come questo. Piuttosto che chiedermi se un tipo di post personalizzato è necessario, mi chiederei perché è necessario creare una pagina admin separata per i post in una certa categoria quando posso semplicemente usare un tipo di post personalizzato per ottenere esattamente la funzionalità richiesta. Questo è il motivo per cui WordPress ha aggiunto i tipi di post personalizzati :)

Andy Andy
25 lug 2016 23:40:07
Mostra i restanti 3 commenti
Tutte le risposte alla domanda 3
0

Puoi filtrare l'elenco degli articoli aggiungendo ?category_name=xx all'URL dell'elenco articoli nell'area di amministrazione, e puoi aggiungere una pagina sottomenu con quell'URL come destinazione tramite add_submenu_page:

add_action( 'admin_menu', 'wpd_admin_menu_item' );
function wpd_admin_menu_item(){
    add_submenu_page(
        'edit.php',
        'Titolo pagina',
        'Titolo voce menu',
        'edit_posts', 
        'edit.php?category_name=somecat'
    );
}
11 lug 2016 18:29:41
2

Puoi ciclare i post per nome della categoria o ID:

$query = new WP_Query( array( 'category_name' => 'staff' ) );

oppure

$query = new WP_Query( array( 'cat' => 4 ) );

e utilizzare il classico metodo per il ciclo:

if ( $query->have_posts() ) :
    while ( $query->have_posts() ) : $query->the_post();
        get_title();
    endwhile;
else :
    echo 'Nessun post trovato';
endif;

Devi creare un nuovo template personalizzato, ottenere l'ID della categoria, impostare l'ID nella nuova WP_Query e ciclare i risultati.

Ecco una documentazione su come utilizzare WP_Query()

11 lug 2016 17:36:58
Commenti

Grazie, sono a conoscenza della query. Sto cercando di non fare tutto manualmente, deve esserci qualche metodo API che genera le pagine "tutti i post" o "pagine", a cui posso semplicemente fornire un argomento per mostrare solo i post che sono nella categoria "x"?

Arnold Rimmer Arnold Rimmer
11 lug 2016 17:43:56

Davvero non conosco nessun plugin per quello. Penso che ne esistano ma devi cercare. Alcuni template lo supportano ma il mio suggerimento per te è di creare un nuovo template personalizzato, copiare 1:1 del codice originale dal tuo template e semplicemente modificare il codice della query.

Ivijan Stefan Stipić Ivijan Stefan Stipić
11 lug 2016 17:55:26
0

Il plugin Category Posts Widget può fare questo. https://wordpress.org/plugins/category-posts/

Category Posts Widget è un widget leggero progettato per fare una cosa e farla bene: mostrare i post più recenti di una determinata categoria.

Documentazione su come usarlo.

e

Se vuoi vedere come hanno fatto, questo è il loro repository GitHub.

15 feb 2017 18:10:34