Cum să filtrezi listarea categoriilor în administrare

12 ian. 2011, 21:40:04
Vizualizări: 238
Voturi: 0

Folosesc cu succes funcția de mai jos pentru a limita lungimea descrierilor categoriilor când vizualizez ecranul de administrare a categoriilor (mulțumesc Rarst).

Să presupunem că vreau să elimin copiii categoriei "Necategorizat" din această listare. Aș putea pur și simplu să adaug o verificare în bucla for de mai jos pentru a sări peste acele elemente copil?

ACTUALIZARE: Cu sfatul lui Rarst despre folosirea unset(), am modificat codul de mai jos cu fragmentele corecte pentru a elimina categorii specifice din listarea de administrare a categoriilor...

//Curăță sumarele descrierilor în tabelul de administrare a categoriilor
add_action( 'admin_head-edit-tags.php', 'admin_edit_tags' );
function admin_edit_tags() 
{
  add_filter( 'get_terms', 'admin_trim_category_description', 10, 2 );
}
function admin_trim_category_description( $terms, $taxonomies ) 
{
if( 'category' != $taxonomies[0] )return $terms;
foreach( $terms as $key=>$term )
{
$terms[$key]->description = strip_tags(substr( $term->description, 0, 75 ))."...";
//noile modificări aici
if($terms[$key]->term_id == 1){unset($terms[$key]);}
}
return $terms;
}
0
Toate răspunsurile la întrebare 1
3

Da, $terms conține toți termenii care sunt preluați din baza de date pentru afișare, astfel încât orice modificări făcute se vor propaga în sus către interfață.

O problemă de care nu sunt sigur este dacă acest lucru va afecta paginarea rezultatelor în acest caz.

12 ian. 2011 21:52:42
Comentarii

mulțumesc din nou. După ce am recit întrebarea mea, pot să văd că s-ar putea să nu fie clar că întreb să elimin întreaga categorie din buclă, nu doar să o sări peste tăierea descrierii. Are sens? Aveți vreo idee despre cum aș putea exclude o anumită categorie, după id, de la a fi scrisă în lista grilă?

Scott B Scott B
12 ian. 2011 22:21:47

@Scott B da, am înțeles întrebarea ta. După cum am spus $terms conține toate categoriile preluate, deci în acea buclă verifici $term pentru o potrivire cu categoria nedorită și faci unset($terms[$key]); la potrivire. Cu precauție, cred că ar trebui să funcționeze. Vrei să scriu codul pentru tine?

Rarst Rarst
12 ian. 2011 22:41:08

Acum înțeleg de ce erați îngrijorat în legătură cu paginarea. Va trebui să mă conectez cumva la rutina de paginare, astfel încât să nu includă categoriile pe care le elimin din numărul de pagini. Altfel, după cum cred că subînțelegeați, numărul de pagină va fi cu siguranță greșit.

Scott B Scott B
14 ian. 2011 04:56:54