web-dev-qa-db-fra.com

post_row_actions pour le type de publication personnalisé

J'utilise this code pour avoir une fonction de publication en double dans WordPress Admin. Cependant, lorsque j'ajoute le filtre pour un type de publication personnalisé, comme ceci:

add_filter( 'directory_row_actions', 'rd_duplicate_post_link', 10, 2 );

(Le type de publication personnalisé a un nom enregistré de directory) - il ne l'ajoute pas à la ligne d'action située sous le titre de l'entrée. Quand je le fais pour les articles ou les pages, comme ceci:

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

cela fonctionne parfaitement. J'ai lu que post_row_actions était obsolète, mais je ne trouve aucun endroit qui indique que c'est son remplacement. Est-ce que quelqu'un sait comment faire fonctionner cela pour mon type de message personnalisé?

2
Tom Oakley

Comme l'a commenté @bonger, il n'y a pas de filtre de type de message personnalisé malgré ce que vous avez lu.

Pour utiliser ce filtre pour un type de publication spécifique, le meilleur moyen consiste à utiliser le filtre post_row_actions, puis à tester par rapport au $post->post_type transmis.

J'ai utilisé le code ci-dessous pour ajouter des liens à la ligne des actions pour un type de publication spécifique (dans ce cas, myposttype).

Ceci devra être modifié pour fonctionner pour votre propre type de message, et évidemment pour que le nouveau lien puisse réellement faire plus de code est nécessaire, mais voici l’idée:

function my_duplicate_post_link($actions, $post)
{
    if ($post->post_type=='myposttype')
    {
        $actions['duplicate'] = '<a href="#" title="" rel="permalink">Duplicate</a>';
    }
    return $actions;
}
add_filter('post_row_actions', 'my_duplicate_post_link', 10, 2);
6
jammypeach