Daran hatte ich auch schon gedacht, aber bei aktuell 816 Seiten und 3548 Bildern ist das nicht zu schaffen.
Beiträge von m266
-
-
Hallo zusammen,
ich erstelle gerade meine neue Website und will einzelne Seiten mit den dazugehörigen Bildern von der bisherigen Website umziehen. Das geht natürlich per Hand, ist aber mühsam. Die WordPress-Werkzeuge ermöglichen nur einen kompletten Umzug aller Seiten (oder nach Datum), was in meinem Fall unpassend ist. Gibt es einen Trick zur Lösung meines Problems?
-
Hallo Carolyn
freut mich, dass es mit Strato auch geklappt hat. Ich nutze WPvivid mittlerweile sehr häufig.LG Hans
-
Ja, erstens das:
Zweites wird der Code nur dann aufgerufen, wenn Du im Backend aktiv selbst das Menü Kommentare aufrufst.Drittens macht der Code nicht das, was Du beschreibst, also weder regelmäßig automatisch noch wird nach Alter unterschieden.
Danke für die Erläuterungen. Dann bleibt nur der Einsatz eines entsprechenden Plugins wie "Advanced Database Cleaner", was ich im Grunde vermeiden wollte.
-
Eine "saubere" WordPress Lösung wäre ein regelmässiger [FONT=Courier New]get_comments()[/FONT] Aufruf mit entspr. [FONT=Courier New]date_query[/FONT] und [FONT=Courier New]status[/FONT] Parametern mit anschliessenden passenden [FONT=Courier New]wp_delete_comment()[/FONT] Aufrufen. Mehr dazu findet sich in den Entwicklerdokumentation https://developer.wordpress.org/
Danke für den Hinweis. Für die Umsetzung fehlen mir leider die Kenntnisse (nur Grundlagenwissen vorhanden, was bisher ausreicht).Ich habe mir nochmal den Tipp von Maxe vorgenommen und das kleine Script wie hier beschrieben abgeändert (prepare durch get_results ersetzt). Nun werden die Kommentare aus Spam wie gewünscht gelöscht und alle übrigen Kommentare bleiben erhalten.
Hier das geänderte Script:PHP
Alles anzeigenfunction kill_pending_and_spam() { $currentScreen = get_current_screen(); if ( 'edit-comments' == $currentScreen->id ) { global $wpdb; $query = $wpdb->get_results( "DELETE FROM $wpdb->comments WHERE comment_approved = 0", '' ); $wpdb->query( $query ); $query = $wpdb->get_results( "DELETE FROM $wpdb->comments WHERE comment_approved = 'spam'", '' ); $wpdb->query( $query ); } } add_action( 'current_screen', 'kill_pending_and_spam' );
Spricht etwas gegen diese Lösung? -
Im Zuge der Sparsamkeit von Plugins wäre mir ein kleines Script, welches ich anpassen kann (siehe Tipp von Maxe) lieber. Die vielen Funktionen des Plugins benötige ich eigentlich nicht, habe es aber zum Ausprobieren in meinen Testsystem installiert. -
Ich vermute, da musst du dir ein eigenes kleines Plugin schreiben. Denkanstoß könnte dir sowas hier geben: https://gist.github.com/lgedeon/bafe38…e2c36/revisions
Das wäre ideal, wenn ich das Script mit einem Cronjob z. B. wöchentlich aufrufen könnte. Leider ist der Code veraltet und ich finde die Lösung nicht: -
Ich benutze NinjaFirewall (WP Edition). Mit dem Comment Blacklist Manager werden die erkannten Spams ausgefiltert und als Spam deklariert. Dazu verwende ich eine eigene Blacklist, welche wie hier beschrieben auf GitHub gehostet wird. Sie fängt wie erwähnt viele Spams ab und wird regelmäßig ergänzt. Das Code-Beispiel für Akismet funktioniert erwartungsgemäß nicht bei mir. M. E. ist der Löschvorgang der Spams nicht von einem Plugin abhängig, da ich z. B. auch manuell Kommentare nach Spam verschieben kann. Es sollte also mit Bordmitteln funktionieren.
-
Hallo,
gibt es eine Möglichkeit, Spams automatisch oder nach Alter zu löschen? Ich benutze eine eigene Kommentar-Blacklist, welche mir vielen Müll abfängt und als Spam bei den Kommentaren kennzeichnet. Mein hartnäckiger Freund "Eric" ist auch fast jeden Tag dabei. Diese Spam-Kommentare werden dann gleich in Spam verschoben und nicht mehr per E-Mail angezeigt. AntiSpam Bee verwende ich nicht, sondern ein anderes Tool.
Hat jemand eine Idee oder einen Ansatz, um diese blöden Spams regelmäßig zu löschen?
Die SuFu im Forum und in Google brachte bisher keine brauchbaren Ergebnisse.
Vielen Dank für eure Hilfe. -
Hier ein Plugin, das einwandfrei funktioniert: Disable FLoC.
Mit dieser Website lässt sich die Funktion leicht überprüfen. https://tanck.nl/floc-check/ -
Ungeachtet der Sinnhaftigkeit des ganzen Vorhabens:
- Das $ Zeichen im Suchen-/Ersetzenstring muss bei der Nutzung von doppelten Anführungszeichen escaped werden.
- Was steht in Zeile 34 der angegeben Datei?
Super!!!
Das war die Lösung. Ganz herzlichen Dank dafür. Ich habe mit Hochkommas und Klammern probiert, aber nichts hat funktioniert.Inhalt der Zeile 34:
$file_contents = str_replace("<?php echo esc_attr( \$option['label'] ); ?>","<?php echo html_entity_decode( \$option['label'] ); ?>",$file_contents);
(Die Backslashes sind schon drin; im Original fehlten sie natürlich)Zur "Sinnhaftigkeit":
Hier ein Forenbeitrag zum Plugin "HappyForms":
https://wordpress.org/support/topic/…/#post-14090448Um in einem Formular die Privacy Police mit Link einzustellen ist die im Forenbeitrag beschriebene Datei zu bearbeiten. Da ich diese Sache auch für andere, eher unkundige Admins beschreibe, wollte ich die Dateibearbeitung vermeiden. Deshalb ist alles in einem Script drin.
Im Ergebnis sieht es dann so aus wie bei meinem Kontaktformular ganz unten (Zustimmung):
https://web266.de/kontakt/ -
Hallo zusammen,
ich habe folgendes Problem, wo ich nicht weiterkomme:
In einer Plugin-Datei soll der String
durch diesen String
ersetzt werden. Das Script kommt in die functions.php oder ein Snippet-Plugin rein.Dieses Muster habe ich gefunden
PHP$path_to_file = 'path/to/the/file'; $file_contents = file_get_contents($path_to_file); $file_contents = str_replace("\nH",",H",$file_contents); file_put_contents($path_to_file,$file_contents);
und so angepasst:PHP$path_to_file = WP_PLUGIN_DIR . '/happyforms/core/templates/parts/frontend-checkbox.php'; $file_contents = file_get_contents($path_to_file); $file_contents = str_replace("<?php echo esc_attr( $option['label'] ); ?>","<?php echo html_entity_decode( $option['label'] ); ?>",$file_contents); file_put_contents($path_to_file,$file_contents);Es kommt folgende Fehlermeldung:
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting '-' or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\LWS\laragon\www\HappyForms\wp-content\plugins\wp-h-snippets\wphs.php on line 34Jetzt komme ich nicht weiter und bitte um einen guten Tipp.
Die Variable "$option['label']" ist vermutlich noch leer.
Vielen Dank! -
Siehe dort Search Appearance > Redirect Attachment URLs > Attachment Parent ...
Leider geht das nur in der Pro-Version (siehe Bild)
Wenn unterschiedliche SEO-Tools verwendet werden, ist die Einstellung jeweils an anderer Stelle bzw. nur in der Kaufversion möglich.
Als Alternative habe ich das Plugin "Disable Comments" getestet und für gut befunden. Mit der Auswahl von "Medien" (siehe Bild) ist mein Problem mit dem Spam über Beitragsbilder gelöst. Dieses Plugin habe ich auf mehreren Websites getestet und es gab keine Fehlermeldungen o. ä. Ich werde es dann verwenden und die Übersetzung noch ein wenig ergänzen. Siehst du ein grundlegendes Problem bei der Verwendung dieses Plugins? -
Viele SEO-Plugins haben entspr. Redirect Funktionen zum eigentlichen Bild eingebaut, Beispiel Yoast SEO, mit denen man u.a. das vermeiden kann.
Vielen Dank für deine schnelle Antwort. In der betreffenden Website ist "All in One SEO" eingebaut. In der kostenlosen Version scheint es keine Einstellung wie bei Yoast SEO zu geben. -
Hallo zusammen,
innerhalb von 3 Tagen habe ich bei einer Kundensite Spam über das jeweilige Beitragsbild bekommen. Das erstaunliche ist, dass die Kommentar-Funktion nicht aktiviert und somit auf der Seite auch kein Formular sichtbar ist. Der Spammer hängt den Namen des Bildes in der URL hinten an - und schon wird das Kommentar-Formular angezeigt. Es handelt sich offenbar um manuell eingetragenen Spam.
Der Inhalt der beiden Spam-Kommentare ist im angehängten Bild sichtbar.
Frage:
Hat das schon jemand beobachtet, dass über ein Beitragsbild Spam reinkommt und wie kann man das ggf. verhindern? -
Das Plugin aus obigem PHP-Code ist nun fertig. Es funktioniert einwandfrei. Danke nochmal für die Unterstützung. Wer es ansehen und ggf. ausprobieren will, findet es hier mit Beschreibung.
-
Hallo mensmaximus,
dein Vorschlag hat leider nicht funktioniert, mich aber auf die richtige Spur gebracht: Mit der Funktion "wp_trim_words" konnte ich den gewünschten Textauszug erstellen. Mit excerpt klappt das leider nicht. Dann noch eine Zeile für "Weiterlesen" eingebaut und fertig ist das Script. Ich werde es später in ein Plugin einbauen, so dass es mehrere Möglichkeiten der Verwendung gibt:
- Ein spezielles Plugin
- Einfügen in ein Snippet-PLugin
- Einfügen in die functions.php
Hier der fertige Code:PHP
Alles anzeigen// Beiträge in Seiten einfügen // Quelle: https://ostrich.de/wordpress-beitraege-auf-seite-anzeigen/ // Version 1.0 // 09.03.2021 // Tag [posts] in der Start-Seite einfügen function shortcode_posts_function(){ //Parameter für Posts $args = array( 'category' => 'allgemein', // Kategorie 'numberposts' => 5 // Anzahl der Beiträge ); //Posts holen $posts = get_posts($args); //Inhalte sammeln $content = '<div class="posts">'; $content .= '<hr> <h1 class="page-title">Letzte Änderungen:</h1>'; foreach ($posts as $post) { $content .= '<div class="post">'; $content .= '<b><a href="'.get_permalink($post->ID).'"><div class="title">'.$post->post_title.'</div></b></a>'; $content .= '<div class="post-date">'.mysql2date('d. F Y', $post->post_date).'</div>'; $content .= '<div class="post-entry">'.wp_trim_words($post->post_content).'</div>'; $content .= '<a href="'.get_permalink($post->ID).'"><div class="post-entry">'."Weiterlesen...".'<hr></div></a>'; $content .= '</div>'; } $content .= '</div>'; //Inhalte übergeben return $content; } add_shortcode('posts', 'shortcode_posts_function');Im Block "foreach" sind alle relevanten Änderungen drin. Vielleicht könnt ihr noch einen fachlichen Blick darauf werfen. Vielen Dank für alle Unterstützung! Ich habe zwar etliche Kenntnisse in PHP usw, aber manchmal kommt man ohne Hilfe nicht weiter. Ein Screenshot zeigt als Beispiel drei Beiträge, wobei die Begrenzung auf 55 Wörter gut zu sehen ist.
Wenn das Plugin fertig ist, werde ich es hier verlinken. -
vielleicht hilft das? https://developer.wordpress.org/reference/func…p_trim_excerpt/
(ansonsten schau in die Source, was wp_trim_excerpt() macht)
Danke für den Hinweis. Das ist vermutlich die Lösung. Jetzt muss ich nur noch schauen, wie ich die Sache mit trim in meinen Code reinkriege. -
ps: das geht natürlich nur wenn Du einen echten Auszug hast.
Richtig. Ich hatte das schon früher probiert und es geht nicht, da es wohl kein "echter" Auszug ist.
Dieser Tipp von maxe ist vermutlich besser, wenn ich die Anzahl der Zeichen begrenze. -
Der Beitragstext ist nun auch drin. Wie bekomme ich ihn als Textauszug hin?
PHP
Alles anzeigen// Beiträge in Seiten einfügen // Quelle: https://ostrich.de/wordpress-beitraege-auf-seite-anzeigen/ // Version 1.0 // 09.03.2021 // Tag [posts] in der Start-Seite einfügen function shortcode_posts_function(){ //Parameter für Posts $args = array( 'category' => 'allgemein', // Kategorie 'numberposts' => 5 // Anzahl der Beiträge ); //Posts holen $posts = get_posts($args); //Inhalte sammeln $content = '<div class="posts">'; $content .= '<hr> <h1 class="page-title">Letzte Änderungen:</h1>'; foreach ($posts as $post) { $content .= '<div class="post">'; $content .= '<b><a href="'.get_permalink($post->ID).'"><div class="title">'.$post->post_title.'</div></b></a>'; $content .= '<div class="post-date">'.mysql2date('d. F Y', $post->post_date).'</div></a>'; $content .= '<div class="post-entry">'.$post->post_content.'</div><hr></a>'; $content .= '<a href="'.get_permalink($post->ID).'"><img src="'.get_the_post_thumbnail_url($post->ID, 'full').'" class="thumb"></a>'; $content .= '</div>'; } $content .= '</div>'; //Inhalte übergeben return $content; } add_shortcode('posts', 'shortcode_posts_function');