Hallo Bego,
Danke für deine Aufmerksamkeit!
Inzwischen konnte ich das Problem eingrenzen. Am Code selber wird es nicht liegen, eher wie dieser eingebunden wird.
Ich hatte diesen Beitrag gefunden, welcher es ermöglichen soll PHP als Shortcode im Elementor zu verwenden.
Es funktioniert ja auch auf der Webseite. Nur … jetzt habe ich mir den Quellcode der Seite angesehen, also Alle Seiten und dann bei der Seite auf Bearbeiten gegangen … und da liegt der Hund begraben 😉 Das durch den Shortcode erzeugte DIV wird dort VOR dem Header ausgegeben! Was aber dann später auf der Seite nicht passiert. Passiert also nur wenn ich die Seite in WordPress bearbeiten will.
Der Code ist einfach (functions.php)
function apm_test_shortcode( $atts ) {
$location_desc = file("/path_zu/test-daten.txt");
shuffle($location_desc);
$input = $location_desc;
$rand_keys = array_rand($input, 20);
echo "<div class='tagcloud'>";
echo "<span class='tag10'>" . $input[$rand_keys[0]] . "· </span>";
echo "<span class='tag11'>" . $input[$rand_keys[1]] . "· </span>";
echo "<span class='tag12'>" . $input[$rand_keys[2]] . "· </span>";
echo "<span class='tag13'>" . $input[$rand_keys[3]] . "· </span>";
echo "<span class='tag14'>" . $input[$rand_keys[4]] . "· </span>";
echo "<span class='tag15'>" . $input[$rand_keys[5]] . "· </span>";
echo "<span class='tag16'>" . $input[$rand_keys[6]] . "· </span>";
echo "<span class='tag17'>" . $input[$rand_keys[7]] . "· </span>";
echo "<span class='tag18'>" . $input[$rand_keys[8]] . "· </span>";
echo "<span class='tag19'>" . $input[$rand_keys[9]] . "· </span>";
echo "<span class='tag20'> ... </span>";
echo "</div>";
}
add_shortcode( 'my_elementor_php_output', 'apm_test_shortcode');
test-daten.txt enthält je Zeile eine kurze Aussage wie z.B Alles bestens, oder Kommen immer gerne wieder u.s.w
Die Liste wird durch Shuffle zufällig gemischt und damit wechseln die Begriffe bei der Ausgabe je Seitenaufruf.
Ist ein älterer Code aus einer älteren PHP-Seite von mir der dort immer gut funktionierte.
Ist der Shortcode via Elementor eingebunden wird er beim Aufruf der Seite auch ohne Probleme ausgeführt! Nur wenn ich die Seite dann in WordPress bearbeiten will kommt es zum Problem das die Ausgabe des Shortcodes vor dem <!DOCTYPE html> des Quelltextes steht und damit das Bearbeiten der Seite teilweise zerstört.
Ich werde wohl nach einer anderen Lösung suchen müssen 😉 Es war auch nur ein Versuch, der auch auf Anhieb klappte, bis ich die Seite dann in WordPress (nicht Elementor) bearbeiten wollte.
Zum Schluss noch eine Nachfrage … Meinen jetzt geschrieben Text kann ich nicht in einer Voransicht ansehen bevor ich diesen jetzt absende? Oder habe ich da etwas übersehen?
Noch einen schönen Restfeiertag!
MfG