Actions de ligne pour les types de publication personnalisés?

16

Je travaille sur un plugin, qui convertit un site en une sorte de portail de rétroaction. J'ai créé une nouvelle page d'objet, 'Feedbacks', qui affiche tous les retours est un format tabulaire, et j'utilise register_column_headers($array_of_column_headers)pour faire mon tableau. Je voulais savoir s'il était possible d'ajouter mes propres actions de ligne de page à ce tableau, je veux dire sous chaque commentaire de la liste, des actions comme 'approuver', 'supprimer', 'liste noire' etc.

J'ai lu le code et quelques billets, et j'ai découvert que c'était fait de cette façon: pour les publications, ses post_row_actions, pour les commentaires comment_row_actions, pour les médias media_row_actions, etc. Existe-t-il un filtre qui me permet de le faire my-page-slug_row_actions,?

Rutwick Gangurde
la source

Réponses:

19

Lorsque vous utilisez un type de publication personnalisé, vous utilisez le post_row_actionscrochet de filtre et vérifiez le type de publication pour le modifier uniquement:

add_filter('post_row_actions','my_action_row', 10, 2);

function my_action_row($actions, $post){
    //check for your post type
    if ($post->post_type =="feedbacks"){
        /*do you stuff here
        you can unset to remove actions
        and to add actions ex:
        $actions['in_google'] = '<a href="http://www.google.com/?q='.get_permalink($post->ID).'">check if indexed</a>';
        */
    }
    return $actions;
}

Mise à jour rapide:

grâce à somatique si vous tapez est « hiérarchique » , alors vous crochet d'action personnalisée poste est: page_row_actions.

Bainternet
la source
A $postune portée? hint hint ;)
t31os
@ t310s Fixed @Bainternet espérons que cela ne vous dérange pas,)
kaiser
2
@kaiser: Et amélioré votre correctif!
Jan Fabry
Salut, j'ai déjà utilisé 'post_row_actions' pour ajouter un lien dans les lignes de messages personnalisés. Mais je veux le faire pour ma page de menu, qui est ajoutée en utilisant le crochet 'add_object_page' (qui est similaire à 'add_menu_page'). add_object_page("Feedbacks", "Feedbacks", 10, "feedbacks-menu", "FeedbackMenuFunction"); add_submenu_page("feedbacks-menu", "Pending Feedbacks", "Pending", 10, "pending-feedbacks-menu", "PendingFeedbackMenuFunction") Je me demandais si je pouvais faire, 'feedbacks-menu_row_actions (...)' (tout comme c'est fait pour d'autres pages comme 'Posts', 'Comments' etc. en utilisant le slug de page avec des actions de ligne).
Rutwick Gangurde
6
pour ceux d'entre vous qui se cognent la tête sur votre bureau en se demandant pourquoi ce code semble ne rien faire avec votre type de message personnalisé, notez: si votre CPT est "hiérarchique", alors votre crochet de filtre l'est "page_row_actions"et NON "post_row_actions" [frotte la tête]
somatique