J'ai la fonction suivante qui fonctionne parfaitement pour mon type d'article personnalisé "vidéo" pour afficher des colonnes personnalisées dans le tableau de bord.
J'ai décidé que le fonctionnement de mon plug-in consistait à créer des types de publication personnalisés de manière dynamique. Je ne connais donc plus le nom exact du type de publication personnalisé. J'aimerais appliquer ce filtre à tous les types de publication personnalisés, si possible.
function populate_columns( $column ) { // populate the custom columns
if ( 'thumbnail' == $column ) {
$thumb_array = array('post_type' => 'video');
$thumbnails = get_posts($thumb_array);
if ( has_post_thumbnail($thumbnail->ID)) {
echo '<a href="' . get_edit_post_link( $thumbnail->ID ) . '" title="' . esc_attr( $thumbnail->post_title ) . '">'; // link thumbnail to edit page
echo get_the_post_thumbnail($thumbnail->ID, array(100,100));
echo '</a>';
}
}
elseif ( 'duration' == $column ) {
$duration_array = array ('post_type'=> 'video');
$duration = get_post_meta( get_the_ID(), '_my_meta_duration', true );
if ($duration != '') {
echo $duration . ' mins';
}
}
}
add_action( 'manage_video_posts_custom_column', 'populate_columns' );
J'ai examiné ces deux exemples de la page de codex pour get_post_types mais je n'ai pas été en mesure de comprendre comment implémenter le tableau post_types dans ma fonction.
L'appel à obtenir des types de publication renvoie les types de publication enregistrés.
<?php $post_types=get_post_types(); ?>
Produire une liste de tous les types de publication enregistrés
<?php
$post_types=get_post_types('','names');
foreach ($post_types as $post_type ) {
echo '<p>'. $post_type. '</p>';
}
?>
Si vous souhaitez cibler tous les types de publication personnalisés ainsi que les types de publication intégrés (publications et pages), vous devez utiliser le crochet manage_posts_custom_column
au lieu du crochet manage_{post_type}_posts_custom_column
utilisé pour cibler des colonnes de type de publication spécifiques, différence subtile dans la convention de dénomination. mais grande différence dans la façon dont ils fonctionnent.
Exemple:
add_action( 'manage_posts_custom_column', 'your_callback');
Avec le hook ci-dessus, vous pouvez toujours vérifier et exclure de manière conditionnelle certains types d'article, comme les types intégrés s'ils ne s'appliquent pas à votre logique, mais vous devez cibler tous les types d'article si vous ne connaissez pas l'article. tapez le nom à l'avance.