‘is_author ()’ Logik im Widget nur für den Autor

Also, ich habe ein Widget, das ich nur dem Autor der Seite zeigen möchte.

Ich habe die folgende Logik verwendet: is_author ()

Es scheint jedoch nicht zu funktionieren (es zeigt Nicht-Autor)

Benutze ich diese Logik richtig?

Irgendwelche Vorschläge?

Vielen Dank

Solutions Collecting From Web of "‘is_author ()’ Logik im Widget nur für den Autor"

is_author () ist nur für Archivseiten. Zitat aus dem Codex:

is_author () überprüft, ob eine Autorenarchivseite angezeigt wird

Das Anzeigen eines einzelnen Posts oder einer Seite wird daher von is_author () nicht mit TRUE beantwortet.

Ich denke du willst etwas mehr so:

global $post,$current_user; // get the global variables to check get_currentuserinfo(); // get current user info // Now check if the author of this post is the same as the current logged in user if ($post->post_author == $current_user->ID) { // do code here } 

Ich hoffe das hilft. 🙂

EDIT # 1: Verkürzte Codeversion.

 // Check if the author of this post is the same as the current logged in user if ( $post->post_author == get_current_user_id() ) { // do code here } 

Sie können verwenden:

 $obj = get_queried_object(); $user_id = get_current_user_id(); // check if page's post author is same as logged in user if (isset($obj->post_author) && $obj->post_author == $user_id) { // ... do your stuff here } 

Mit der function get_queried_object Sie ein Objekt der aktuellen Seite. Da die Seite den Typ “Seite” haben soll, erhalten Sie das WP_Post-Objekt der aktuellen Seite (post_type = ‘Seite’).

Die get_current_user_id ist selbsterklärend.

Wenn beide übereinstimmen, erhalten Sie Code für den aktuellen Benutzer, der die Seite erstellt.

Sie können auch überprüfen, ob das abgefragte Objekt ‘Seite’ ist:

 if ($obj instanceof WP_Post && $obj->post_type == 'page') { // ... }