删除带重定向的Single-Custom.php上的链接

时间:2014-03-06 作者:4ndro1d

我需要在自定义帖子类型的单个页面上为我的用户提供删除链接。但是,当条目被删除时,用户将在此页面上出现“找不到任何内容”的wordpress错误(因为我们仍然在条目站点+/?deleted=1). 如何将用户重定向到网站上的其他页面?

以下是我发布删除链接的方式:

if ( !current_user_can( \'delete_bkroadkill\', $post->ID ) )
            return;

        $onclick =  "onclick=\\"return confirm(\'Rly delete?\');\\"";
        $link = "<a " . $onclick. " href=\'" . wp_nonce_url( get_bloginfo(\'url\') . "/wordpress/wp-admin/post.php?action=delete&amp;post=" . $post->ID, \'delete-post_\' . $post->ID) . "\'>" . \'Löschen\' . "</a>";
        echo $before . $link . $after;
我只需在我的单个bkroadkill中调用这个函数。php

  <?php wp_delete_post_link(); ?>
我已经用这个钩子试过了:

add_action(\'trashed_post\',\'my_trashed_post_handler\',10,1);
function my_trashed_post_handler($post_id) {
   if (!is_admin()) {
    wp_redirect(\'http://www.citizen-science.at/projekte/roadkill/ubersicht\');
    exit;
   }
}
但它没有任何效果。这只适用于标准岗位吗?我找不到挂钩的任何文档,除了http://codex.wordpress.org/Plugin_API#Current_Hooks_For_Actions.

不管怎样,正确的方法是什么?

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

用户实际上会转到链接,然后在帖子被删除后返回,而不是“仍在”页面。根据您的描述和快速查看代码,这可能是将用户发回的一行代码:

wp_redirect( add_query_arg(\'deleted\', 1, $sendback) );
因为目标是在内部过滤的wp_redirect()

$location = apply_filters( \'wp_redirect\', $location, $status );
你有现成的deleted 标记应该可以很容易地将用户重定向到其他地方,可能需要进行一些检查,以便不会干扰正常的管理操作。

结束

相关推荐

以数组形式返回PAGINATE_COMMENTS_LINKS()

这个documentation 指定:类型(字符串)(可选)控制返回值的格式。可能的值包括:“普通”-链接由换行符分隔的字符串</“数组”-分页链接列表的数组,可完全控制显示为了将推特引导分页样式添加到wordpress评论分页中,我希望返回是一个数组。当我在通话中添加$args时,我得不到任何回报。我的代码:<ol class=\"commentlist\" style=\"list-style: none;\"> <?php wp_list_comments(\