Cool! Vielen Dank für Deine unermüdliche Hilfe! :)
Beiträge von ASenna
-
-
Kann es sein, dass es nur ein Darstellungproblem ist? Ich kontrolliere mit dem Yoast SEO-Plugin, wie die Werte gesetzt sind. Dort steht dirn, dass die Seite indiziert werden darf. Aber die echo-Befehle in der functions.php sagen ja was anders.
-
Das steht in der functions.php:
Code
Alles anzeigenadd_filter( 'wp_robots', function( $robots ) { $id = get_the_ID(); vartest( $id ); if ( $id !== false && get_post_meta( $id, 'no_index', true ) === 'ja' ) { echo 'gesetzt Index'; $robots['noindex'] = true; } if ( $id !== false && get_post_meta( $id, 'no_follow', true ) === 'ja' ) { $robots['nofollow'] = true; echo 'gesetzt follow'; } return $robots; } );vartest() ist eine Function von mir, die einfach nur den Wert einer Variablen ausgibt.
Das steht in dem entsprechenden PHP-Skript:
Code
Alles anzeigen$neueseite = array( 'post_title' => $pruefling['Internetseite'], 'post_type' => 'page', 'post_content' => $text, 'post_status' => 'publish', 'post_parent' => 0, 'post_author' => get_current_user_id(), 'page_template' => 'templates/template_pflegebeduerftige.php', 'meta_input' => array( 'no_index' => 'ja', 'no_follow' => 'ja') ); $postID = wp_insert_post( $neueseite ); $temp = 'angelegt ' . $postID; vartest($temp);Und diese Seite wurde angelegt:
-
Tut mir Leid, wenn ich nerve. Aber die Verbindung zur gerade angeelgten Seite mir mir nicht klar. Über
kenne ich ja die ID der neu angeelgten Seite (irgendetwas 1800). Ich habe die add_filter() ermeitert, damit die mir jetzt mal die ID ausgibt, die sie über get_the_ID() holt. Es ist eine völlig andere (irgendwas 1300).
Wo stehe ich hier immer noch auf dem Schlauch?
AS
-
Sorry, blöd ausgedrückt. Sie steht in der Functions.php drin, ggw. noch auskommentriert. Denn ich habe die Sorge, dass dieser Filter jetzt über alle Seiten läuft. Das Merkmal NoIndex soll aber nur bei der gerade erstellten Seite geändert werden (das meine ich mit "dahinerhängen"). Oder wird add_filter() immer dann ausgelöst, wenn wp_insert_post() aufgerufen wurde? Da hakt es noch bei mir.
-
Vielen Dank für Deine Hilfe, auch bezüglich Groß-/Kleinschreibung. Das Komma ist übrigens nur beim Kopieren verloren gegangen. Daher gab es keinen Fehler.
Mir fehlt jetzt ist wahrscheinlich nur eine Kleinigkeit: Wie und wo binde ich die add_filter-Function ein? Wie lasse ich sie los meine gerade angelegte neue Seite, von der ich über die $postID ja die ID habe? Ich kann sie ja nicht einfach hinter die Anweisung mit dem wp_insert_post() setzen.
-
Vielen Dank für die schnelle Hilfe. Ich verstehe Wordpress aber nicht ganz. Ich habe die Routine jetzt etwas modifiziert:
Code... 'post_author' => get_current_user_id(), 'page_template' => 'templates/template_xxxxxx.php' 'meta-input' => array( 'noIndex' => true, 'noFollow' => true) ); $postID = wp_insert_post( $neueseite );So wie ich dich verstehe, reicht das aber nicht aus, die Seite vom Indexieren auszunehmen. Ich muss jetzt ja wohl mit einem Filter weiterarbeiten. Wie aber muss der aussehen?
würde ja nur die Meta-Tags ändern, im konkreten Fall noch nicht einmal. Irgendwie muss das über
gehen, wie du ja auch geschrieben hast. Ich verstehen aber nicht, wie man diesen Filder auf alleine die Seite aus $postID anwendet.
AS
-
Moin,
ich lege über ein PHP-Skript hin und wieder eine neue Seite an. Klappt ohne Probleme:
Code$neueseite = array( 'post_title' => $xxxxxx, 'post_type' => 'page', 'post_content' => $text, 'post_status' => 'publish', 'post_parent' => 0, 'post_author' => get_current_user_id(), 'page_template' => 'templates/template_xxxxxx.php' ); $result = wp_insert_post( $neueseite );Klappt prima. Jetzt die Frage: Wie muss ich diese Routine modifizieren, dass die Seite gleich auf NoIndex und NoFollow gesetzt wird, so dass Google etc. sie gar nicht erst in seinen Index aufnimmt?
Ich hatte gedacht, dass das über noindex() geht, diese Function ist aber deprecated, verweist auf wp_no_robots() die auch deprecated ist, die auf die Function wp_robots_no_robots() verweist
https://developer.wordpress.org/reference/functions/wp_no_robots/
die aber nicht existiert.
AS
-
Trotzdem Danke für Deinen Impuls.
-
Ich würde gerne ohne Plugin arbeiten, daher gerne selber per PHP in die Suche eingreifen.
-
Moin,
ich würde gerne die Suchfunktion von WP modifiziere. Konkret geht es darum, temporäre Seiten mit immer wieder unterschiedlichen Namen von der Suche auszuschließen. Kann mir jemand den Ansatz liefern, wo ich hier eingreifen muss? Irgendwo habe ich gelesen, dass es eine search.php geben soll, die ich bei mir aber nicht finden konnte.
AS
-
O.k., schaue ich mir mal an. Danke!
-
Keine Ahnung, warum ich keinen Treffer erzielt habe. Ich hatte das ganze Theme-Verzeichnis auf meinen PC geladen und dann mit dem Explorer durchsuchen lassen, dabei natürlich darauf geachtet, dass er auch den Inhalt der Dateien durchsucht. Irgendwo muss da was schief gegangen sein.
Nochmals danke für Eure Hilfe.:)
-
Moin,
"Kommentare" ist kein Name einer Variabeln sondern eine Erläuterung zu einer Variabeln. Hier mal die erste Zeile der Strukur meiner Tabelle:
Hier nun steht bei Kommentare natürlich nichts, bei den folgenden Variablen dann aber. Anders formuliert: Wie kann ich über PHP den Typ oder das Attribut der Variabeln ID auslesen? Mit dem Ansatz käme ich sicher auch weiter.
So verständlich?
-
Moin,
ich greife per PHP auf eine WP-Tabelle zu. Das klappt alles. Die Struktur der Tabelle sieht sehr vereinfahrt so aus:Name Typ ... Kommentare
ID INT ... ID des Kunden
name VAR ... Name des Kunden
ort VAR ... WohnortIch generiere nun eine Seite, auf der jeweils ein bestimmter Datensatz dargestellt wird. Auch das klappt und sieht so aus:
ID: 1
name: Müller
ort: BonnIch hätte jetzt aber gerne, dass statt dem Namen der Variablen der Kommentar der Variablen dargestellt wird, also
ID des Kunden: 1
Name des Kunden: Müller
Wohnort: BonnGeht das? Kann ich also per PHP auf Merkmale der Struktur einer WP-Tabelle zugreifen?
AS
-
Ich habe jetzt die Ursache gefunden - falls jemand anderes das gleiche Problem hat. In der functions.php meines Theme hat vermutlich irgendein Plugin, das ich schon längst wieder gelöscht haben, folgende Zeilen eingebaut:
Code/* * Adds Google AdSense script to the WordPress theme by embedding it into the <head> section. * @since xxxxxx function add_google_adsense() { if ( !is_user_logged_in() ) { echo '<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-52xxxxxxxxx" crossorigin="anonymous"></script>'; } } add_action( 'wp_head', 'add_google_adsense' );Entfernt und schon gab es keine Werbung mehr.
Danke noch mal an alle für die Unterstützung.
-
Danke an @b3317133 Ich mache mich mal daran.
Danke auch an den Rest. Ich arbeite das mal nach und nach ab.
-
Ich habe jetzt mal das Plugin Better Search Replace durchlaufen lassen: 0 Treffer
-
Ergänzung: Wenn es nach eingehender Prüfung nicht am Theme direkt liegt, ist die Seite möglicherweise gehackt.Woran könnte man das erkennen? Gibt es da irgendwelche FirstAid-Empfehlungen?
-
Ich weiß zwar nicht wo die betreffende Webseite zu finden ist, solche Einbindungen können auch "unbewusst" durch Verwendung externer Bibliotheken im Theme erzeugt werden. Dem Ersteller kann das auch nicht bewusst sein, manchmal entwickeln sich solche externen Bibliotheken im Laufe der Zeit weiter und dann passiert so etwas.
Die Werbung wird erst seit Eröffnung dieses Threats eingeblendet. Das Theme ist aber schon ca. 3 Jahre alt. Eingebunden ist nur Bootstrap. Könnte das eine Ursache sein? Plugins sind zuletzt auch nicht hinzugekommen.