Check if almost 10 year old - working code is up to date
I found the following code and tested it on my site. Works fine. But im not sure if the code is up to date because the last few years so much has changed on wordpress. Thx for your feedback and optmization suggestions.
// Show only default posts related to current user - https://wordpress.stackexchange.com/a/34788/132453
add_action('pre_get_posts', 'query_set_only_author' );
function query_set_only_author( $wp_query ) {
global $current_user;
if( is_admin() !current_user_can('edit_others_posts') ) {
$wp_query-set( 'author', $current_user-ID );
add_filter('views_edit-post', 'fix_post_counts');
}
}
// Fix post counts
function fix_post_counts($views) {
global $current_user, $wp_query;
unset($views['mine']);
$types = array(
array( 'status' = NULL ),
array( 'status' = 'publish' ),
array( 'status' = 'draft' ),
array( 'status' = 'pending' ),
array( 'status' = 'trash' )
);
foreach( $types as $type ) {
$query = array(
'author' = $current_user-ID,
'post_type' = 'post',
'post_status' = $type['status']
);
$result = new WP_Query($query);
if( $type['status'] == NULL ):
$class = ($wp_query-query_vars['post_status'] == NULL) ? ' class=current' : '';
$views['all'] = sprintf(__('a href=%s'. $class .'All span class=count(%d)/span/a', 'all'),
admin_url('edit.php?post_type=post'),
$result-found_posts);
elseif( $type['status'] == 'publish' ):
$class = ($wp_query-query_vars['post_status'] == 'publish') ? ' class=current' : '';
$views['publish'] = sprintf(__('a href=%s'. $class .'Published span class=count(%d)/span/a', 'publish'),
admin_url('edit.php?post_status=publishpost_type=post'),
$result-found_posts);
elseif( $type['status'] == 'draft' ):
$class = ($wp_query-query_vars['post_status'] == 'draft') ? ' class=current' : '';
$views['draft'] = sprintf(__('a href=%s'. $class .'Draft'. ((sizeof($result-posts) 1) ? s : ) .' span class=count(%d)/span/a', 'draft'),
admin_url('edit.php?post_status=draftpost_type=post'),
$result-found_posts);
elseif( $type['status'] == 'pending' ):
$class = ($wp_query-query_vars['post_status'] == 'pending') ? ' class=current' : '';
$views['pending'] = sprintf(__('a href=%s'. $class .'Pending span class=count(%d)/span/a', 'pending'),
admin_url('edit.php?post_status=pendingpost_type=post'),
$result-found_posts);
elseif( $type['status'] == 'trash' ):
$class = ($wp_query-query_vars['post_status'] == 'trash') ? ' class=current' : '';
$views['trash'] = sprintf(__('a href=%s'. $class .'Trash span class=count(%d)/span/a', 'trash'),
admin_url('edit.php?post_status=trashpost_type=post'),
$result-found_posts);
endif;
}
return $views;
}
Topic coding-standards functions query posts Wordpress performance
Category Web