Afisare postări doar dintr-o anumită categorie în secțiunea WP Admin?

11 iul. 2016, 16:16:21
Vizualizări: 18.4K
Voturi: 2

Vreau să adaug un nou punct de meniu pentru postări care să afișeze postările dintr-o anumită categorie. Adăugarea unei noi pagini este ușoară dacă este doar un nou tip de postare. Dar eu vreau să afișez doar postările cu o categorie specifică și să mă asigur că categoria este bifată când actualizez postările.

Nu există nicio modalitate de a face asta? Speram să existe o funcție simplă, similară cu register_post_type(). Din moment ce nu pare să existe, poate cineva să-mi dea câteva sugestii despre cum să fac asta? Este chiar posibil? Sau ar trebui să folosesc un tip de postare personalizat?

8
Comentarii

Da, desigur că este posibil să listezi postările dintr-o anumită categorie! Dar pentru a clarifica problema ta, poți să elaborezi ce înțelegi prin "vreau să adaug un nou punct de meniu"?

TheDeadMedic TheDeadMedic
11 iul. 2016 16:48:50

Vreau o pagină exact ca toate postările, dar una care afișează doar înregistrări din categoria x. De asemenea, vreau să folosesc filtrul de actualizare a postării pentru a mă asigura că pe această pagină elementele au categoria x selectată. Știu că există un parametru de interogare cat, dar cum pot adăuga o pagină nouă ca subpagină a postărilor care să listeze doar postările din categoria x???

Ceva de genul acesta poate??? wp_create_list_table({cat: 'x'}); Văd cum să adaug o subpagină, dar trebuie să creez conținutul manual... dar cum??? Ce metode trebuie apelate pentru a face tot ce face pagina de toate postările?

Arnold Rimmer Arnold Rimmer
11 iul. 2016 17:38:05

Doar pentru a clarifica, aceasta este pentru backend (administrare), nu pentru frontend.

Arnold Rimmer Arnold Rimmer
11 iul. 2016 17:51:11

Îmi cer scuze dacă ai răspuns la această întrebare și nu am observat răspunsul, sau dacă am înțeles greșit problema ta. Dar de ce nu ai putea folosi pur și simplu filtrul de categorii din lista tuturor articolelor?

Jeff Cohan Jeff Cohan
11 iul. 2016 22:10:04

Pentru că unii clienți doresc o pagină separată pentru categorie, ei au o mulțime de articole. Le-am sugerat să folosească acel filtru, dar ei doresc pur și simplu un link către o pagină care este deja configurată.

Arnold Rimmer Arnold Rimmer
12 iul. 2016 10:22:13

Răspunsul lui Milo face exact ceea ce dorești, dar de ce să nu folosești un custom post type? Dacă articolele din acea categorie sunt complet separate de celelalte articole, atunci ar avea sens să fie în propriul lor tip de postare.

Andy Andy
13 iul. 2016 15:44:46

Da, m-am gândit la asta, dar nu eram sigur dacă e necesar. Este normal ca site-urile WP să creeze multe tipuri de postări personalizate? Credeam că ar trebui să faci asta doar dacă e absolut necesar. Vin dintr-un mediu TYPO3, așa că încă încerc să descopăr modul WordPress de a face lucrurile. Mulțumesc pentru ajutor, am acceptat răspunsul lui Milos pentru asta.

Arnold Rimmer Arnold Rimmer
14 iul. 2016 16:25:15

Aș folosi întotdeauna un tip de postare personalizat în cazuri de genul acesta. Decât să mă întreb dacă un tip de postare personalizat este necesar, aș întreba de ce ar fi necesar să creez o pagină de administrare separată pentru postări dintr-o anumită categorie când pot folosi un tip de postare personalizat pentru a obține exact funcționalitatea dorită. Acesta este motivul pentru care WordPress a adăugat tipuri de postări personalizate :)

Andy Andy
25 iul. 2016 23:40:07
Arată celelalte 3 comentarii
Toate răspunsurile la întrebare 3
0

Puteți filtra lista de articole adăugând ?category_name=xx la URL-ul listei de articole din administrare și puteți adăuga o pagină de submeniu cu acel URL ca țintă prin intermediul add_submenu_page:

add_action( 'admin_menu', 'wpd_admin_menu_item' );
function wpd_admin_menu_item(){
    add_submenu_page(
        'edit.php',
        'Titlul paginii',
        'Titlul elementului de meniu',
        'edit_posts', 
        'edit.php?category_name=somecat'
    );
}
11 iul. 2016 18:29:41
2

Puteți parcurge postările după numele categoriei sau ID:

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

sau

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

și folosiți metoda clasică pentru parcurgere:

if ( $query->have_posts() ) :
    while ( $query->have_posts() ) : $query->the_post();
        get_title();
    endwhile;
else :
    echo 'Nicio postare';
endif;

Trebuie să creați un șablon personalizat, să obțineți ID-ul categoriei, să setați ID-ul în noul WP_Query și să parcurgeți rezultatele.

Aici găsiți documentația despre cum să utilizați WP_Query()

11 iul. 2016 17:36:58
Comentarii

Mulțumesc, știu despre interogare. Încerc să nu fac totul manual, trebuie să existe vreo metodă API care să deseneze paginile "toate articolele" sau "pagini", căreia să-i pot furniza un argument pentru a afișa doar postările care sunt în categoria "x"?

Arnold Rimmer Arnold Rimmer
11 iul. 2016 17:43:56

Nu cunosc nicio extensie pentru asta. Cred că există, dar va trebui să cauți. Unele șabloane suportă asta, dar sugestia mea pentru tine este să creezi un șablon personalizat nou, să copiezi 1:1 codul original din șablonul tău și să ajustezi doar codul interogării.

Ivijan Stefan Stipić Ivijan Stefan Stipić
11 iul. 2016 17:55:26
0

Pluginul Category Posts Widget va face acest lucru. https://wordpress.org/plugins/category-posts/

Category Posts Widget este un widget ușor conceput să facă un singur lucru și să îl facă bine: să afișeze cele mai recente articole dintr-o anumită categorie.

Documentația pentru utilizarea acestuia.

și

Dacă doriți să vedeți cum au realizat acest lucru, aici este depozitul lor github.

15 feb. 2017 18:10:34