更改每页帖子的默认屏幕选项值

时间:2014-04-18 作者:Christine Cooper

当在中列出帖子时,我想更改wp admin区域中每页帖子的默认屏幕选项值pending 模式默认值设置为20.

直接在屏幕选项选项卡中更改值只会影响用户,而不是所有用户this answer 建议。

有可行的解决方案吗?

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

只是上瘾了@KrzysiekDróżdż answer.

查看特定帖子状态时,url查询字符串变量\'post_status\', 设置为状态的名称,因此您可以使用$_GET[\'post_status\'] 要缩小@KrzysiekDródżcode仅对待定职位的影响:

function my_edit_per_page( $result, $option, $user ) {
  $status = filter_input( INPUT_GET, \'post_status\', FILTER_SANITIZE_STRING );
  if ( $status === \'pending\' && (int) $result < 1 )
  return 20; // or whatever you want
}
add_filter( \'get_user_option_edit_post_per_page\', \'my_edit_per_page\', 10, 3 );  // for posts

SO网友:Krzysiek Dróżdż

这不会很难做到。只需将此添加到您的函数中。php或插件:

function my_edit_per_page( $result, $option, $user ) {
    if ( (int)$result < 1 )
        return 20; // or whatever you want
}
add_filter( \'get_user_option_edit_page_per_page\', \'my_edit_per_page\', 10, 3 );  // for pages
add_filter( \'get_user_option_edit_post_per_page\', \'my_edit_per_page\', 10, 3 );  // for posts
这样,您将更改默认值。所以,如果用户更改它,它将记住用户的选择。

唯一的问题是,此设置对于整个post type editor是常见的。我担心根据帖子状态设置它(并且不破坏任何内容)不会那么容易。

结束

相关推荐

List sidebars on a page

我需要在给定页面上生成边栏列表。我知道如何列出所有已注册的侧栏,以及所有已注册的具有活动小部件的侧栏,但我不知道how to filter 他们一直到the sidebars that were displayed on an individual page 使用PHP。为了避开这个我$wp_registered_sidebars 并将其替换为实现ArrayAccess, 其中90%的方式是拦截调用并存储请求的侧栏,只有侧栏永远不会显示,因为某个地方是is_array 或其他检查失败。我也可以拦截dyna