it-swarm.com.de

Zeigt den Bearbeitungslink an, wenn der Autor des Beitrags der aktuelle Benutzer ist

Ich erstelle eine author.php Seite und liste alle Beiträge eines Autors auf. Obwohl Administratoren die Bearbeitungslinks der Beiträge sehen können, möchte ich den Link wiederholen, wenn der angemeldete Benutzer der aktuelle Benutzer ist

zum Beispiel

wenn der Testbenutzer angemeldet ist und die aktuelle Seite/author/testuser ist, kann er Post-Links bearbeiten

aber

wenn der Testbenutzer angemeldet ist und die aktuelle Seite/author/theee ist, kann er die Links nicht sehen

derzeit habe ich

$curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $author_name) : get_userdata(intval($author));
$th = $curauth->nickname; 
$cu = $current_user->user_login;
if ( $th = $curauth ) {
  edit_post_link('edit', '', ''); 
} else {

}

aber immer noch können nur Administratoren die Links sehen.

2
Emre Caglar

Wenn Sie nur die Seite author.php ändern müssen, funktioniert dieser Code wahrscheinlich:

<?php 

if( is_user_logged_in() && is_author(get_current_user_id()) ) {

    edit_post_link('edit', '', '');

}

?>

Der erste Teil der Bedingungen prüft, ob ein Benutzer angemeldet ist. Die zweite ist wahr, wenn die aktuelle Seite die Autorenseite des aktuellen Benutzers ist.

5
Mat_

Ich denke, der Link zum Bearbeiten des Beitrags sollte für den Autor und den Moderator des Beitrags sichtbar sein (Benutzer des Editors oder wie kann er das?).

Mein vorgeschlagener Code sieht also so aus

global $post, $current_user;
get_currentuserinfo();

if(current_user_can( 'edit_others_posts', $post->ID ) || ($post->post_author == $current_user->ID))  { 

    //show edit link    
}
3
Manchumahara

In den functions.php Ihres Themas eingefügt, sollte dies das Verhalten von edit_post_link global ändern. Es sollte auf allen Ihren Archiven funktionieren, nicht nur auf Ihren Autorenarchiven - alles, was edit_post_link verwendet.

function limit_edit_Link_wpse_85214($link) {
  global $post,$current_user;
  get_currentuserinfo();
  if ($post->post_author == $current_user->ID) {
    return $link;
  }
  return false;
}
add_filter('get_edit_post_link','limit_edit_Link_wpse_85214');

Wenn nur innerhalb einer Schleife zuverlässig funktioniert, ist dies der einzige Ort, an dem Sie edit_post_link verwenden sollten.

Wenn dies nur für Ihre Autorenarchivseiten funktionieren soll, fügen Sie diesen Code einfach vor der Schleife in die Vorlage author.php ein und fügen Sie ihn nicht in function.php ein. Es sollte dann nichts anderes als diese Seite bewirken. Oder Sie können einfach die Eingeweide für die Funktion verwenden, um Ihre Bedingung zu erfüllen, wie Sie es versucht haben.

2
s_ha_dum