Schau mal hier, ob dir das schon weiterhilft:
https://codex.wordpress.org/Using_Password_Protection
Gruß, Torsten
Hallo Torsten,
vielen Dank für die schnelle Antwort und den Link! Das hilft mir auf jeden Fall weiter! Nur eine Frage habe ich diesbezüglich noch: Kann ich den Code einfach in die functions.php meines Themes einfügen oder in welchen Ordner gehört dieser?
Gruß
thomas
Auf den zweiten Blick hat sich leider noch eine weitere Frage aufgetan. Mittels des folgenden Codes wird ja ein Standard-Excerpt ausgegeben:
<?php
function my_excerpt_protected( $excerpt ) {
if ( post_password_required() )
$excerpt = '<em>[This is password-protected.]</em>';
return $excerpt;
}
add_filter( 'the_excerpt', 'my_excerpt_protected' );
?>
Daran ändert sich bis auf den Text ja erst mal nichts, wenn ich meinen eigenen Text einfüge.
Besteht die Möglichkeit, keinen festgelegten Standard-Text einzuzetzen, sondern eine Anweisung, die automatisch den im Beitrag festgelegten Teaser (also bis zur „Weiterlesen“ Linie) oder aber zumindest den ersten Absatz des Beitrages als Kurzfassung übernimmt? Letztendlich stelle ich mir das so vor, wie das auch in vielen Themes bei nicht passwortgeschützten Beitragsübersichten umgesetzt wird.
Weiß jemand Rat?
Gruß
thomas
Moderationshinweis: Bitte verwende im Beitragseditor des Forums den Code-Button zur Formatierung von Code-Schnipseln. Das erleichtert uns das Lesen. Danke, Bego
-
Diese Antwort wurde geändert vor 6 Jahren, 9 Monaten von Bego Mario Garde. Grund: Codeformatierung korrigiert
Kann ich den Code einfach in die functions.php meines Themes einfügen
Wenn du ein Child-Theme nutzt, was du selbst erstellt hast, dann ja. Sonst wird die functions.php beim nächsten Theme-Update überschrieben und deine Änderungen sind futsch.
Alternativ kannst du den Code auch in ein Snippet packen:
https://wordpress.org/plugins/code-snippets/
Besteht die Möglichkeit, keinen festgelegten Standard-Text einzuzetzen, sondern eine Anweisung, die automatisch den im Beitrag festgelegten Teaser (also bis zur „Weiterlesen“ Linie) oder aber zumindest den ersten Absatz des Beitrages als Kurzfassung übernimmt?
Ja, klar. Der Filter kann doch einfach wieder mit dem Excerpt gefüllt werden. Schau dir mal die Funktion im Original, um den Kontext des Filters zu verstehen:
https://github.com/WordPress/WordPress/blob/5c291d49de756db1dbfddfe3fd69709595800622/wp-includes/post-template.php#L360-L412
Gruß, Torsten
Hallo Torsten,
abermals vielen Dank für deine Hilfe (auch an Bego für den Hinweis bezüglich des Einfügens der Code-Schnipsel hier im Forum)!
Da ich absoluter Neuling in Sachen php bin, möchte ich mein Ergebnis hier gerne noch mal zur Prüfung posten, ehe ich mir versehentlich die functions.php zerschieße.
<?php
function my_excerpt_protected( $excerpt ) {
if ( post_password_required() )
$excerpt = 'get_the_excerpt()';
return $excerpt;
}
add_filter( 'the_excerpt', 'my_excerpt_protected' );
?>
Ist das so richtig?
Vielen Dank für die Hilfe!
Thomas
Probier’s doch einfach aus?
Vorab kannst du aber nochmal folgenden PHP-Code ausprobieren:
$dolly = 'hello dolly';
echo '$dolly'; // gibt "$dolly" im Browser aus
echo $dolly; // gibt "hello dolly" im Browser aus.
echo 'get_the_excerpt()'; // gibt "get_the_excerpt()" im Browser aus?!
alles klar?
Schau mal, ob du mit diesem Beitrag besser zurecht kommst:
http://www.wpbeginner.com/wp-tutorials/how-to-show-excerpt-of-a-password-protected-post-in-wordpress/
Hallo zusammen!
Bego, danke für die Antwort!
Leider hat der Code oben nicht funktioniert, also bitte nicht kopieren. Ich habe mich an die Anweisung auf der WPBeginner-Seite (siehe Link oben) gerichtet, das hat funktioniert.
Danke für die Hilfe!
-
Diese Antwort wurde geändert vor 6 Jahren, 9 Monaten von thomasba.
Leider ist doch wieder ein Problem aufgetaucht. Mit folgendem Code wird zwar der Teaser des <Beitrages gezeigt, allerdings verschwindet der Inhalt (Fotos, Text, einfach alles, mit Ausnahme der Headers und Footers) aller anderen Seiten auf meiner Site komplett.:
// Excerpt bei passwortgeschützten Beiträgen zeigen
function wpb_protected_excerpt( $excerpt ) {
if ( post_password_required() ) {
$post = get_post();
$excerpt=$post->post_excerpt;
}
return $excerpt;
}
add_filter( 'the_excerpt', 'wpb_protected_excerpt' );
function wpb_protected_excerpt_posts( $content ) {
if ( post_password_required() && is_single() ) {
$post = get_post();
return $post->post_excerpt.$content;
}}
add_filter( 'the_content', 'wpb_protected_excerpt_posts', 10 );
Hat jemand eine Idee, woran das liegt bzw. wie ich diesen Fehler beheben kann?
-
Diese Antwort wurde geändert vor 6 Jahren, 9 Monaten von thomasba.
Auf Anhieb kann ich da keinen Fehler entdecken. Ist der Debug-Modus aktiviert? ( define( 'WP_DEBUG', true );
in der wp-config.php
)
Ja, bekomme keine Fehlermeldungen angezeigt…