Forum Replies Created

Viewing 4 replies - 1 through 4 (of 4 total)
  • Same :((

    pcserveis

    (@pcserveis)

    Same here ;))

    This code hides all posts and media that do not belong to the currently logged in author (you can change it to apply to other user roles). It also fixes the post and media count on the filter bars (e.g. All | Images | Videos | Unattached).

    //
       // Mostrar sólo las Publicaciones, Comentarios y Multimedia que sean  Propios
       // Más info en > PC-SERVEIS, Dise?o Web - https://www.pc-serveis.es
       //
    
       // Show only posts and media related to logged in author
       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');
            add_filter('views_upload', 'fix_media_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  .'>Todas <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 .'>Publicadas <span class="count">(%d)</span></a>', 'publish'),
                    admin_url('edit.php? post_status=publish&post_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 .'>Borrador'. ((sizeof($result->posts) > 1) ? "s" : "") .' <span class="count">(%d)</span></a>', 'draft'),
                    admin_url('edit.php?post_status=draft&post_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 .'>Pendiente <span class="count">(%d)</span></a>', 'pending'),
                    admin_url('edit.php?post_status=pending&post_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 .'>Papelera <span class="count">(%d)</span></a>', 'trash'),
                    admin_url('edit.php?post_status=trash&post_type=post'),
                    $result->found_posts);
            endif;
          }
          return $views;
        }
    
       // Fix media counts
       function fix_media_counts($views) {
          global $wpdb, $current_user, $post_mime_types,  $avail_post_mime_types;
          $views = array();
          $count = $wpdb->get_results( "
             SELECT post_mime_type, COUNT( * ) AS num_posts
             FROM $wpdb->posts
             WHERE post_type = 'attachment'
             AND post_author = $current_user->ID
             AND post_status != 'trash'
             GROUP BY post_mime_type
          ", ARRAY_A );
          foreach( $count as $row )
    				if ($count && $row != 0) {
            $_num_posts[$row['post_mime_type']] = $row['num_posts'];
        		$_total_posts = array_sum($_num_posts);
        		$detached = isset( $_REQUEST['detached'] ) || isset( $_REQUEST['find_detached'] );
    				};
          if ( !isset( $total_orphans ) )
             $total_orphans = $wpdb->get_var("
                SELECT COUNT( * )
                FROM $wpdb->posts
                WHERE post_type = 'attachment'
                AND post_author = $current_user->ID
                AND post_status != 'trash'
                AND post_parent < 1
             ");
    		if ($matches != 0) {
    		$matches = wp_match_mime_types(array_keys($post_mime_types), array_keys($_num_posts));
        foreach ( $matches as $type => $reals )
            foreach ( $reals as $real )
                $num_posts[$type] = ( isset( $num_posts[$type] ) ) ? $num_posts[$type] + $_num_posts[$real] : $_num_posts[$real];
        $class = ( empty($_GET['post_mime_type']) && !$detached && !isset($_GET['status']) ) ? ' class="current"' : '';
        $views['all'] = "<a href='upload.php'$class>" . sprintf( __('Todas <span class="count">(%s)</span>', 'uploaded files' ), number_format_i18n( $_total_posts )) . '</a>';
        foreach ( $post_mime_types as $mime_type => $label ) {
            $class = '';
            if ( !wp_match_mime_types($mime_type, $avail_post_mime_types) )
                continue;
            if ( !empty($_GET['post_mime_type']) && wp_match_mime_types($mime_type, $_GET['post_mime_type']) )
                $class = ' class="current"';
            if ( !empty( $num_posts[$mime_type] ) )
                $views[$mime_type] = "<a href='upload.php?post_mime_type=$mime_type'$class>" . sprintf( translate_nooped_plural( $label[2], $num_posts[$mime_type] ), $num_posts[$mime_type] ) . '</a>';
        }
          $views['detached'] = '<a href="upload.php?detached=1"' . ( $detached ? ' class="current"' : '' ) . '>' . sprintf( __( 'Sin Adjuntar <span class="count">(%s)</span>', 'detached files' ), $total_orphans ) . '</a>';
        return $views;
        }
       };

    Greetings from Barcelona ! !

    PC-SERVEIS, Dise?o Web
    https://www.pc-serveis.es

    I have the same problem here…

    The Admin Panel became very slow since I installed the Site Notes version 1.3.2, however, I have reinstalled the 1.2 version & WordPress works perfectly.

    Greetings from Barcelona and Congratulations to Developers of Site Notes!

    PC-SERVEIS, Dise?o Web

Viewing 4 replies - 1 through 4 (of 4 total)