自定义发布类型的POST_ROW_ACTIONS

时间:2014-09-11 作者:Tom Oakley

我正在使用this 在WordPress Admin中具有重复post函数的代码。但是,当我为自定义帖子类型添加过滤器时,如下所示:

add_filter( \'directory_row_actions\', \'rd_duplicate_post_link\', 10, 2 );
(自定义帖子类型的注册名称为directory) - 它不会将其添加到条目标题下的操作行中。当我为帖子或页面执行此操作时,如下所示:

add_filter( \'post_row_actions\', \'rd_duplicate_post_link\', 10, 2 );
它工作得很好。我一直在读这个post_row_actions 已被弃用,但我找不到任何地方说它是替代品。有人知道如何让我的自定义帖子类型工作吗?

2 个回复
SO网友:jammypeach

正如@bonger所评论的,不管你读了什么,都没有自定义的post类型过滤器。

要将此筛选器用于特定的帖子类型,最好的方法是使用post_row_actions 过滤,然后根据传入的$post->post_type.

我使用下面的代码为特定的帖子类型(在本例中为myposttype)添加到actions行的链接。

这将需要进行编辑,以适合您自己的帖子类型,显然,新链接需要更多的代码来实际执行任何操作,但这是一个想法:

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);

SO网友:Irfan Modan
//Post, page or all register custom post types

function im_duplicate_post_link($actions, $post)
{
    // get all post type which is register
    $posttypes = get_post_types(array(\'public\' => true), \'names\', \'and\');
    foreach ($posttypes as $post_type)
    {
        $posttype[] = $post_type;
    }
    //check current post type is in "$posttype"  array, if it\'s in array then display duplicate link.
    if (in_array($post->post_type, $posttype))
    {
        $actions[\'duplicate\'] = \'<a href="admin.php?action=im_duplicate_post_as_draft&amp;post=\' . $post->ID . \'" title="Duplicate this item" rel="permalink">Duplicate</a>\';
    }
    return $actions;
}
// this hook for post and custom post type
add_filter(\'post_row_actions\', \'im_duplicate_post_link\', 10, 2);
// this hook for page
add_filter(\'page_row_actions\', \'im_duplicate_post_link\', 10, 2);
结束

相关推荐

How to call custom posts

我有此自定义帖子:add_action(\'init\', \'eveniment_register\'); function eveniment_register() { $args = array( \'label\' => __(\'Evenimente\'), \'singular_label\' => __(\'Eveniment\'), \'public\' => tru