So entfernen Sie alle Instanzen von edit_post_link

7

Kann mir bitte jemand helfen, wie ich im Autorenmodus den edit_post_link (Link bearbeiten) auf allen meinen Seiten aus meinem Thema entfernen kann? Welche PHP-Dateien im Twenty Eleven-Theme (WordPress v3.2) muss ich auskommentieren, um diesen Bearbeitungslink nicht mehr anzuzeigen?

Mir ist klar, dass Sie dies nur im Autorenmodus sehen, aber gerne wissen möchten, wie Sie es insgesamt entfernen können.

Vielen Dank.

Tonyf
quelle

Antworten:

4

Es ist die edit_post_link()Funktion. Sie finden Zeilen wie die folgenden, die Sie auskommentieren müssen:

// from /twentyeleven/content-intro.php
edit_post_link( __( 'Edit', 'twentyeleven' ), '<span class="edit-link">', '</span>' );
Kaiser
quelle
13

Eine Möglichkeit besteht darin, die Vorlagendateien Ihres Themas zu bearbeiten, wie Sie in Ihrer Frage erwähnt haben, dass Sie Twenty Eleven verwenden, damit Sie den Ratschlägen von @kaiser folgen können .

Die andere Möglichkeit, die ich vorziehen möchte, anstatt die Vorlagendateien zu ändern, ist die Verwendung des Filters. Der Vorteil von Filter ist, dass es auch mit anderen Themen funktioniert. Der Nachteil des Filters ist, dass <span></span>Ihre HTML-Quelle leere Tags enthält, die jedoch auf der eigentlichen Seite nicht sichtbar sind.

Sie können den folgenden Code in Ihre functions.php einfügen.

function wpse_remove_edit_post_link( $link ) {
    return '';
}
add_filter('edit_post_link', 'wpse_remove_edit_post_link');

PS Sie können den Filter verwenden, um den Link zum Bearbeiten von Posts auch für ausgewählte Posts zu deaktivieren.

Hameedullah Khan
quelle
5
Oder benutze einfach add_filter( 'edit_post_link', '__return_false' );:)
kaiser
Wäre add_filter( 'edit_post_link', '__return_null' );angemessener als falsch?
jb510
1
Dies ist besser als die akzeptierte Lösung, da Sie nicht nach der eigentlichen Funktion suchen müssen, was besonders schwierig ist, wenn Sie untergeordnete Themen verwenden.
f055
4

Hameedullahs Antwort ist eleganter, beseitigt jedoch nicht die Vorher- und Nachher-Elemente. Dazu müssen Sie stattdessen get_edit_post_link filtern und null zurückgeben.

function wpse_remove_get_edit_post_link( $link ) {
    return null;
}
add_filter('get_edit_post_link', 'wpse_remove_get_edit_post_link');
Art Smith
quelle
Dadurch wird auch der Bearbeitungslink im Admin-Bereich gelöscht!
Jason
1

Hier ist ein Einzeiler. add_filter('edit_post_link', '__return_false');
Bonus: Admin-Leiste ausblendenadd_filter('show_admin_bar', '__return_false');

Yasin Yaqoobi
quelle