Vis bare innlegg / media eid av pålogget WordPress-bruker

Wordpress viser bare wordpress-innlegg og media som eies av innlogget bruker

Slik deaktiverer du visning av innlegg og media fra andre WordPress-brukere

Hvis du noen gang har jobbet på et WordPress-fellesside støttet av mange utgivere, har du kanskje lagt merke til at selv om du ikke kan redigere andres innlegg, kan du fremdeles se titlene på hvert innlegg i WordPress-administratoren. 

Det er fordi WordPress som standard tillater forfattere å se titlene på hvert publiserte innlegg, utkast og media.

I denne opplæringen viser vi deg hvordan du deaktiverer visning av innlegg og media fra andre brukere.

Hvis du vil se flere triks du kan bruke med WordPress, må du sjekke ut noen av våre andre artikler.

innhold[Forestilling]

tittelvisning deaktivert

Husk å ta en WordPress-sikkerhetskopi (bruker disse pluginene) før du fortsetter hvis noe går i stykker mens du tilpasser koden. 

1. Deaktiver visning av innlegg og media fra andre WordPress-brukere

Legg til koden nedenfor i functions.php-filen din for å deaktivere visning av innlegg og media fra andre brukere.

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');
 }
}

2. Deaktiver visning av antall WordPress-innlegg

Som nevnt vil den ovennevnte koden bare deaktivere visning av titler på andres innlegg i WordPress-dashbordet.

Problemet er at det ikke vil deaktivere visning av antall innlegg i filterstolpene 'alle innlegg', 'utkast', 'søppel' og 'ventende'. Hvis du også vil fikse antall innlegg i filterlinjene, kan du legge til kodebiten nedenfor i temaets funksjoner.php-fil.

Vær oppmerksom på at koden nedenfor fungerer bare hvis den brukes sammen med ovennevnte kode.

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=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 .'>Draft'. ((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 .'>Pending <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 .'>Trash <span class="count">(%d)</span></a>', 'trash'),
          admin_url('edit.php?post_status=trash&post_type=post'),
          $result->found_posts);

    endif;
  }
 
  return $views;
}

3. Fiks medietellinger

Hvis du også vil deaktivere medietellingen, kan du legge til koden nedenfor i functions.php-filen. For å få denne koden til å fungere, sørg for at du også legger til den første koden, det vil si koden som deaktiverer visning av innlegg og media fra andre brukere. 

function fix_media_counts($views) {
  global $wpdb, $current_user, $post_mime_types, $avail_post_mime_types;
  $views = array();
  $_num_posts = 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 )
    $_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

    ");

  $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( __('All <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( __( 'Unattached <span class="count">(%s)</span>', 'detached files' ), $total_orphans ) . '</a>';

 return $views;
}

 Og at damer og herrer er et kodehack som lar deg bare vise innleggene og media til den påloggede WordPress-brukeren.

Sjekk om en bruker er logget på WordPress

I ovennevnte kodejustering trengte vi å sjekke om en bruker klarte å redigere innlegg. Men hvis du vil sjekke om en bruker er logget på WordPress via kode, kan du bruke følgende kode:

if ( is_user_logged_in() ) {
    echo 'Welcome, registered user!';
} else {
    echo 'Welcome, visitor!';
};
 

På den annen side, hvis du leter etter en enkel måte å vite om en bruker er logget inn i backend, kan du bruke følgende plugin: WPForce-logg ut eller Who's Logged In plugin.

wp tving utlogging for å se om brukere er pålogget

 

Trenger du hjelp med å få gjort ting? Prøv disse topprangerte rimelige konsertene på Fiverr!

fiverr -logo

Klikk her å finne eksperter på fikse WordPress-problemer.

Klikk her å lage en hele WordPress-nettstedet.

 

 
Last ned listen over 101 WordPress-triks hver blogger burde vite

101 WordPress-triks

Klikk her for å laste ned nå
 
om forfatteren
David Attard
Forfatter: David Attardnettside: https://www.linkedin.com/in/dattard/
David har jobbet i eller rundt den elektroniske / digitale industrien de siste 18 årene. Han har lang erfaring innen programvare- og webdesignindustrien ved å bruke WordPress, Joomla og nisjer rundt dem. Som digital konsulent er hans fokus på å hjelpe bedrifter med å få et konkurransefortrinn ved å bruke en kombinasjon av deres nettside og digitale plattformer som er tilgjengelige i dag.

En ting til... Visste du at folk som deler nyttige ting som dette innlegget også ser FANTASTISK ut? ;-)
Vær så snill forlate en nyttig kommenter med tankene dine, så del dette på Facebook-gruppen din (e) som synes dette er nyttig, og la oss høste fordelene sammen. Takk for at du delte og var hyggelig!

Avsløring: Denne siden kan inneholde lenker til eksterne nettsteder for produkter som vi elsker og anbefaler helhjertet. Hvis du kjøper produkter vi foreslår, kan vi tjene et henvisningsgebyr. Slike avgifter påvirker ikke våre anbefalinger, og vi godtar ikke betaling for positive anmeldelser.

Forfatter (e) Fremvist på:  Inc Magazine-logoen   Sitepoint-logo   CSS Tricks-logo    webdesignerdepot-logo   WPMU DEV-logo   og mange flere ...