Hvernig á að slökkva á sýningu á færslum og fjölmiðlum annarra WordPress notenda
Ef þú hefur einhvern tíma unnið á WordPress samfélagssíðu sem studd er af mörgum útgefendum gætirðu tekið eftir því að þrátt fyrir að þú getir ekki breytt færslum annarra, þá geturðu samt skoðað titla hverrar færslu inni í WordPress stjórnanda.
Það er vegna þess að WordPress gerir höfundum sjálfgefið kleift að sjá titla á hverri birtri færslu, drögum og fjölmiðlum.
Í þessari kennslu munum við sýna þér hvernig á að gera óvirkar sýningar á færslum og fjölmiðlum annarra notenda.
Ef þú vilt sjá fleiri brellur sem þú getur notað með WordPress, vertu viss um að skoða nokkrar aðrar greinar okkar.
Mundu að taka WordPress afrit (með þessum viðbótum) áður en þú heldur áfram ef eitthvað brotnar á meðan þú lagfærir kóðann.
Frekari upplýsingar um notkun WP_Query fyrir sérsniðnar færslugerðir.
1. Slökktu á því að sýna færslur og fjölmiðla annarra WordPress notenda
Bættu kóðanum hér að neðan við aðgerðir þínar.php til að gera óvirkar sem sýna færslur og fjölmiðla annarra notenda.
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. Slökkva á sýningu á WordPress færslum
Eins og getið er, ofangreindur kóði mun aðeins slökkva á því að sýna titla á færslum annarra innan WordPress mælaborðsins.
Vandamálið er að það mun ekki slökkva á því að sýna fjölda talninga inni í „öllum færslum“, „drögum“, „rusli“ og „bið“ síustikum. Ef þú vilt líka laga færslufjöldann í síustikunum skaltu bæta kóðabrotinu hér að neðan við aðgerðir þemans.php skrá.
Athugaðu að kóðinn hér að neðan virkar aðeins ef hann er notaður ásamt ofangreindum kóða.
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="/is/%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="/is/%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="/is/%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="/is/%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="/is/%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. Lagaðu fjölda fjölmiðla
Ef þú vilt slökkva einnig á fjölda fjölmiðla skaltu bæta kóðanum hér að neðan við aðgerðir þínar.php. Til að láta þennan kóða virka skaltu ganga úr skugga um að bæta við fyrsta kóðanum líka, það er kóðanum sem gerir óvirkan sýningu á pósti og fjölmiðlum annarra notenda.
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="/is/upload.php?detached=1"' . ( $detached ? ' class="current"' : '' ) . '>' . sprintf( __( 'Unattached <span class="count">(%s)</span>', 'detached files' ), $total_orphans ) . '</a>';
return $views;
}
Og þessi dömur og heiðursmaður er kóðahakk sem gerir þér kleift að sýna aðeins færslur og fjölmiðla núverandi WordPress notanda.
Athugaðu hvort notandi sé skráður á WordPress
Í kóðabreytingunni hér að ofan þurftum við að athuga hvort notandi gæti breytt færslum. En ef þú vilt athuga hvort notandi sé skráður inn í WordPress með kóða geturðu notað eftirfarandi kóða:
if ( is_user_logged_in() ) {
echo 'Welcome, registered user!';
} else {
echo 'Welcome, visitor!';
};
Á hinn bóginn, ef þú ert að leita að einfaldri leið til að vita hvort notandi er skráður í bakendann, getur þú notað eftirfarandi viðbót: WPForce útskráning eða hver er innskráður viðbót.
Þarftu hjálp við að gera efni? Prófaðu þessi vinsælustu tónleikar á Fiverr!
Ýttu hér að finna sérfræðinga um að laga WordPress vandamál.
Ýttu hér til að búa til full WordPress vefsíða.
vinsamlegast yfirgefa a gagnlegt skrifaðu athugasemdir við hugsanir þínar, deildu þessu síðan á Facebook hópinn þinn / hverjum sem myndu finnast þetta gagnlegt og við skulum uppskera ávinninginn saman. Takk fyrir að deila og vera fín!
Birting: Þessi síða getur innihaldið tengla á ytri vefsíður fyrir vörur sem við elskum og mælum af heilum hug. Ef þú kaupir vörur sem við leggjum til gætum við unnið okkur inn tilvísunargjald. Slík gjöld hafa ekki áhrif á ráðleggingar okkar og við tökum ekki við greiðslum fyrir jákvæða dóma.