Da eigene Inhalte abhängig von Einstellungen in der wp-config.php
auch in einem anderen Verzeichnis als wp-content
liegen könnten, würde der relative Pfad unter Umständen auch einen Fehler liefern.
Besser ist es, die Funktionen zu verwenden, die WordPress dir zur Verfügung stellt.
<form action="<?php echo get_stylesheet_directory() . '/nachricht.php'; ?>" method="post">
-
Diese Antwort wurde geändert vor 6 Jahren, 3 Monaten von Bego Mario Garde. Grund: Code korrigiert
Hallo,
ich habe Deinen Vorschlag original (Cut&Paste) übernommen. Aber er findet damit die Datei nicht.
Liegt die Datei denn im Child-Theme-Verzeichnis?
Oder in einem Unterverzeichnis?
Nachtrag: ich hab gerade gesehen, dass noch ein Fehler in der Zeile war. Statt <?
sollte es <?php
heißen (oben bereits korrigiert).
-
Diese Antwort wurde geändert vor 6 Jahren, 3 Monaten von Bego Mario Garde. Grund: Nachtrag
Die Datei liegt im Child-Theme-Verzeichnis.
Hier der Gesamtpfad:
D:\xampp\htdocs\wordpress\wp-content\themes\twentyfifteen-child\
und die Dateien:
D:\xampp\htdocs\wordpress\wp-content\themes\twentyfifteen-child\functions.php
D:\xampp\htdocs\wordpress\wp-content\themes\twentyfifteen-child\nachricht.php
D:\xampp\htdocs\wordpress\wp-content\themes\twentyfifteen-child\style.css
In dem Source-Code der Seite sieht es übrigens so aus:
<form action=“<? echo get_stylesheet_directory() . ‚/nachricht.php‘; ?>“ method=“post“>
Das erste “ wird also original dargestellt, die folgenden codiert. Vermutlich liegt es daran?
Egal wie ich es hier darstellen will, die Codierung wird wieder in “ zurückverwandelt.
Also nochmals: Im Sourcecode werden die “ bis auf das erste dargestellt mit
& # 8220 (ohne die Leerstellen).
Original:
<form action="<? echo get_stylesheet_directory() . '/nachricht.php'; ?>" method="post">
-
Diese Antwort wurde geändert vor 6 Jahren, 3 Monaten von lothar01.
-
Diese Antwort wurde geändert vor 6 Jahren, 3 Monaten von lothar01.
-
Diese Antwort wurde geändert vor 6 Jahren, 3 Monaten von lothar01.
-
Diese Antwort wurde geändert vor 6 Jahren, 3 Monaten von lothar01.
-
Diese Antwort wurde geändert vor 6 Jahren, 3 Monaten von lothar01.
-
Diese Antwort wurde geändert vor 6 Jahren, 3 Monaten von lothar01.
Änder mal das <?
in <?php
– sorry wegen dem Fehler.
Hallo, leider immer noch kein Erfolg.
Das auf der Seite sichbare HTML ist
<form action=“<?php echo get_stylesheet_directory() . ‚/nachricht.php‘; ?>& #8220; method=& #8220;post& #8220;><br />
(keine Leerstellen nach den &
Ich habe es jetzt testweise so versucht:
<form action="<?php echo '../wp-content/themes/Divi_child_WR/nachricht.php'; ?>" method="post">
also mit echo Ausgabe deskorrekten Pfads. Auch hier im Ergebnis die codierten „.
Schau mal, ob dir da „typographische Anführungszeichen“ reingerutscht sind.
Was für einen Programmier-Editor verwendest du? Achte da auch auf die richtige Zeichenkodierung (UTF-8 ohne BOM).
Ich verwende Notepad++,
Die Codierung ist UTF-8 ohne BOM.
In diesem Editor habe ich die Anführungzeichen erneut eingegeben,
Aber es führte nicht zu einem Erfolg.
Die Angabe
<form action=“<?php ?>“ method=“post“>
ergibt
<form action=“<?php ?>& #8220; method=& #8220;post&# 8220;>
Die Angabe
<form action=“blabla“ method=“post“>
ergibt
<form action=“blabla“ method=“post“>
D.h. <?php …?> wird nicht verstanden
Das ergibt für mich keinen Sinn, da kann ich dir nicht weiterhelfen.
Noch ein Versuch, vielleicht hat auch jemand anderes noch eine Idee.
In normalem HTML außerhalb von WordPress:
<?php echo "Test1"; ?>
<?php echo "<h1>Test2</h1>"; ?>
Inhalt des Quelltextes der HTML-Seite:
Test1<h1>Test2</h1>
Das gleiche in einer wordpress-Seite ergibt:
<p><?php echo „Test1″; ?><br />
<?php echo “
<h1>Test2</h1>
<p>& #8222;; ?></p>
Die Ursache muss demnach in WordPress liegen.
(im Quelltext keine Leerstelle zwischen & und #
Was meinst du mit „Das gleiche in einer wordpress-Seite ergibt“?
Fügst du den Code als Seiteninhalt (Menü Seite > Bearbeiten, Editor) ein?
Ja, und zwar unter „Text“ (nicht „visuell“.
Nachfolgendes wird wohl der Grund sein. Aber wie kann ich dies ändern?
Falls Sicherheitsbedenken: Seiten können nur von mir verändert werden.
Nicht jeder HTML-Code wird korrekt eingebunden. Manchmal kommt es vor, dass der Quellcode in WordPress verändert und der Inhalt nicht korrekt dargestellt wird. PHP-Code wird in der Regel ausgeklammert und funktioniert somit nicht. Dabei handelt es sich um eine Sicherheitseinstellung, dass kein ungewünschter Schadcode eingebunden werden kann.
Richtig, der Editor ist zur Erfassung von Inhalten gedacht, nicht für PHP. PHP-Code wird „entschärft“, in dem Code-Zeichen in Ersetzungszeichen (Character Entities) umgewandelt werden. Sonst könntest du beliebigen PHP-Code einfügen und damit z.B. alle Zugangsberechtigungen umgehen.
Ursprünglich war von einem Child Theme die Rede („… habe ich das child: twentyfifteen-child definiert mit functions.php und style.css …“). Templates und Plugins bestehen aus PHP-Code und du kannst eigenen PHP-Code einfügen.