web-dev-qa-db-fra.com

Le filtrage des colonnes de la table des publications de l'administrateur ne fonctionne pas pour le type de publication personnalisé

J'ai beaucoup de messages dans mon type de message personnalisé. Je souhaite le filtrer lorsque je clique sur ma catégorie de publication. comme l'image suivante. enter image description here

Voici mon code pour l'ajouter sur les liens de clic.

function my_custom_columns($column){
global $post;
$custom = get_post_custom();
switch ($column) {      
    case 'ticketcat' :          
        echo get_the_term_list($post->ID, 'ticketcat', '', ', ','');
    break;
    case 'author_role' :
        $get_author_role = get_userdata($post->post_author);
        echo implode(', ', $get_author_role->roles); 
    break;
    case 'ref' :              
        echo get_post_meta($post->ID, 'employer_ref', true); 
    break;
  }
}
add_action('manage_posts_custom_column',  'my_custom_columns');

À présent, si je clique sur Paiement ou Technique, les résultats filtrés de celui sélectionné seront affichés.

1
nadhanshankar

vous ne faites que répéter la liste des termes. Donc, cela va générer un chemin d’accès. Vous devez changer comme ça.

$post_type= get_post_type($post->ID );
$term_list = wp_get_post_terms($post->ID, 'ticketcat', array("fields" => "all"));
echo '<a href="'.admin_url( 'edit.php?post_type=' . $post_type ) . '&ticketcat='.$term_list[0]->slug.'" > '. $term_list[0]->name.' </a>';

Commencez par obtenir le type de message, son nom de terme et son slug, puis, avec l'aide de l'écho personnalisé, affichez les résultats. Voici la fonction complète que vous recherchez.

function my_custom_columns($column){
    global $post;
    $custom = get_post_custom();
    switch ($column) {      
        case 'ticketcat' :          
            //echo get_the_term_list($post->ID, 'ticketcat', '', ', ','');
            $post_type= get_post_type($post->ID );
            $term_list = wp_get_post_terms($post->ID, 'ticketcat', array("fields" => "all"));
            echo '<a href="'.admin_url( 'edit.php?post_type=' . $post_type ) . '&ticketcat='.$term_list[0]->slug.'" > '. $term_list[0]->name.' </a>';
        break;
        case 'author_role' :
            $get_author_role = get_userdata($post->post_author);
            echo implode(', ', $get_author_role->roles); 
        break;
        case 'ref' :              
            echo get_post_meta($post->ID, 'employer_ref', true); 
        break;
    }
}
add_action('manage_posts_custom_column',  'my_custom_columns');
1
Kvvaradha