如何将快速链接添加到帖子管理员已发布|已计划|垃圾桶菜单

时间:2011-06-07 作者:Justin Long

这里可能有一个有趣的想法:是否可以在Post Admin页面顶部的快速链接中添加“快速链接”(例如,在Bulk Actions下拉列表上方,其中显示“All | Published | Scheduled | Drafts | Pending”)?

我的想法是添加以下链接:今天|周一|周二|周三|周四|周五

只需添加“Today”将非常有用,因为它将触发显示所有已发布或计划于今天发布的帖子的过滤器。

1 个回复
SO网友:Stephen Harris

您可以使用views_{screen_id} 过滤器(used here), 它过滤一个数组,其中键作为该“视图”的ID,值是用于显示视图的HTML(如“All”、“Draft”、“Trash”等)。

您只需向该阵列添加额外链接:

add_filter( \'views_edit-post\', \'wpse_add_my_view\');
function wpse_add_my_view($views){
    global $post_type_object;
    $post_type = $post_type_object->name;

    $y =mysql2date(\'Y\', current_time(\'mysql\') );
    $m =mysql2date(\'m\', current_time(\'mysql\') );
    $d =mysql2date(\'d\', current_time(\'mysql\') );
    $views[\'today\'] = "<a href=\'edit.php?year=$y&monthnum=$m&day=$d&post_type=$post_type\'>".__(\'Today\',\'myplugin\')."</a>";

    return $views;
}
当然,WordPress不会自动突出显示您的自定义链接(为什么会这样?)-但要做到这一点,您只需添加类current 在适当的时候连接到链接(检查是否正在查询年、月和日?)。

默认情况下,WordPress会将该类添加到“all”中,因此当您添加该类时,还需要将其从“all”中删除(否则它们都会显示为粗体)。为此,您可以替换“all”值或preg_replace 删除该类。

结束