Adăugarea categoriei în coloana de administrare pentru un tip de postare personalizat
Am creat un tip de postare personalizat numit article și informațiile afișate în ecranul de rezumat din admin sunt minime. Am reușit să adaug imaginea reprezentativă folosind http://codex.wordpress.org/Plugin_API/Action_Reference/manage_posts_custom_column dintr-un tutorial.
Cu toate acestea, aș dori să pot avea o privire de ansamblu asupra categoriilor și subcategoriilor care au fost atribuite acestor postări în pagina de administrare, adică să adaug o coloană pentru acea parte?
Acesta este codul pe care l-am folosit pentru a înregistra taxonomia în codul tipurilor de postare personalizate

Funcția register_taxonomy are un parametru numit show_admin_column
care se ocupă de adăugarea unei coloane. Ai încercat să-l folosești?
exemplu:
register_taxonomy(
'my_tax',
'post_type',
array(
'label' => 'Taxonomia Mea',
'show_admin_column' => true,
)
);

După o căutare, am găsit o soluție folosind filtrul manage_edit-${post_type}_columns
și acțiunea manage_${post_type}_posts_custom_column
.
Coloanele sunt create cu filtrul și apoi coloana este populată cu acțiunea. Presupun că coloane suplimentare ar putea fi adăugate și populate destul de ușor folosind ideile din acest link http://justintadlock.com/archives/2011/06/27/custom-columns-for-custom-post-types
add_filter('manage_edit-article_columns', 'my_columns');
function my_columns($columns) {
$columns['article_category'] = 'Categorie';
return $columns;
}
add_action( 'manage_article_posts_custom_column', 'my_manage_article_columns', 10, 2 );
function my_manage_article_columns( $column, $post_id ) {
global $post;
switch( $column ) {
/* Dacă se afișează coloana 'article_category'. */
case 'article_category' :
/* Obține categoriile pentru postare. */
$terms = get_the_terms( $post_id, 'article_category' );
/* Dacă s-au găsit categorii. */
if ( !empty( $terms ) ) {
$out = array();
/* Parcurge fiecare categorie, creând un link către pagina de editare pentru categoria specifică. */
foreach ( $terms as $term ) {
$out[] = sprintf( '<a href="%s">%s</a>',
esc_url( add_query_arg( array( 'post_type' => $post->post_type, 'article_category' => $term->slug ), 'edit.php' ) ),
esc_html( sanitize_term_field( 'name', $term->name, $term->term_id, 'article_category', 'display' ) )
);
}
/* Combină categoriile, separându-le cu virgulă. */
echo join( ', ', $out );
}
/* Dacă nu s-au găsit categorii, afișează un mesaj implicit. */
else {
_e( 'Nu există articole' );
}
break;
/* Ieși din instrucțiunea switch pentru orice altceva. */
default :
break;
}
}

Aproape aceeași întrebare: vreau o coloană suplimentară "categorie" în ecranul de administrare. "categorie" este o taxonomie creată cu Divi Machine. Slug-ul este art_category În functions.php al temei mele child, am reușit să fac câmpurile ACF vizibile, chiar sortabile, dar acelea sunt câmpuri ACF. Coloana Categorie este vizibilă. Totuși, nu există valori.
Trebuie să fie pe undeva aici:
if ( 'artcategory' === $column ) {
$artcategory = get_post_meta( $post_id, 'art_category', true );
if ( ! $artcategory ) {
_e( 'n/b' ); // n/b = nu există/not available
} else {
echo $artcategory;
}
}
Ce fac greșit.....

Acest răspuns nu răspunde cu adevărat la întrebare. Dacă ai o altă întrebare, o poți adresa făcând clic pe Pune o Întrebare. Pentru a fi notificat atunci când această întrebare primește răspunsuri noi, poți urmări această întrebare. Odată ce ai suficientă reputație, poți de asemenea adăuga o recompensă pentru a atrage mai multă atenție asupra acestei întrebări. - Din Recenzie
