• Gelöst wpapm

    (@wpapm)


    Hallo,

    in einem HTML-Block muss ich den Path zu einer Datei anpassen

    $location_desc = file("/home/test/Local Sites/apm/app/public/wp-content/themes/tt5-clone/assets/css/test-3.txt");

    Mit

    get_template_directory_uri()

    kann ich ja wohl ? den o.g Path /home/…/assets/… flexibel zum aktiven Template festlegen, bin mir aber jetzt total unsicher wie ich das richtig eintrage :-/ Kann mir da jemand bitte behilflich sein?

Ansicht von 10 Antworten – 1 bis 10 (von insgesamt 10)
  • Moderator La Geek

    (@la-geek)

    In einen HTML-Block => PHP-Code ❌
    Nicht mit dem standardmäßigen WordPress-Site-/Block-Editor.

    In die functions.php, als Shortcode, und Shortcode einfügen ist eine Möglichkeit.

    Thread-Starter wpapm

    (@wpapm)

    Die Ausführung ist nicht das Problem, das funktioniert. Mir geht es um die Änderung/Anpassung des Paths zur Datei 😉

    Moderator La Geek

    (@la-geek)

    get_template_directory_uri()
    Das ist PHP

    Thread-Starter wpapm

    (@wpapm)

    Ich belasse es bei der funktionierenden Pathangabe und ersetze die Adresse bei einem späteren Umzug auf den Produktivserver. Oder lass mir die Tage was einfallen.

    $location_desc = file("./wp-content/themes/tt5-clone/assets/css/test-3.txt");

    Funktioniert auch und ist so erstmal O.K für mich.

    Moderator threadi

    (@threadi)

    In PHP wäre das hier wohl richtig:

    $location_desc = file(get_template_directory() . "/assets/css/test-3.txt");

    get_template_directory_uri() gibt die URL des Themes zurück, du brauchst aber den Pfad. Das macht get_template_directory(). Siehe die verlinkten Handbücher.

    Ich frage mich aber auch wie du das in einem HTML-Block ausgeben willst. Vermutlich fehlt hier eine Information von dir zur Einbindung.

    Thread-Starter wpapm

    (@wpapm)

    @threadi … Eine Nacht drüber geschlafen … aufgewacht … an den Rechner … und da fällt mir ein … was will ich im Code mit der URL!, ich brauche doch den Pfad! Und erledigt.

    Wollte es eben hier posten und lese deinen passenden und richtigen Hinweis! Danke! Hatte mich einfach verfahren und festgebissen 😉

    Sorry … damit der Code, ich nutze da nur Kleinigkeiten, ausgeführt werden kann habe ich diesen Eintrag in der functions.php

    /* PHP in HTML ausführen lassen */
    function php_in_widgets_ausfuehren( $block_content, $block ) {
    if ( $block['blockName'] === 'core/html' ) {
    ob_start();
    eval( '?>' . $block_content );
    $block_content = ob_get_clean();
    }
    return $block_content;
    }
    add_filter( 'render_block', 'php_in_widgets_ausfuehren', 10, 2 );
    /* Ende PHP in HTML ausführen lassen */

    Und wäre ich jetzt nicht selbst aufgewacht … hätte mich dein Hinweis auf den richtigen Weg gebracht 🙂 Nochmals Danke!

    Moderator threadi

    (@threadi)

    Prima. Pausen helfen mir auch oft – kenne das ^^

    Allerdings ein Hinweis: es heißt auch „eval is evil“, weshalb ich dir empfehlen würde diesen Code so nicht zu verwenden. Ich würde dir stattdessen empfehlen den PHP-Code in einem Shortcode zu kapseln und diesen mit dem Shortcode-Block einzufügen. Das ist sicherer und auch zukunftsfähiger als das was du da hast. Dein Hoster braucht nur die PHP-Funktion eval() aus Sicherheitsgründen abschalten und schon geht das nicht mehr.

    Thread-Starter wpapm

    (@wpapm)

    @threadi Danke für deinen Hinweis! Wo kann ich da verständlich was nachlesen?

    Moderator threadi

    (@threadi)

    Thread-Starter wpapm

    (@wpapm)

    @threadi Danke! 😉 Ich bin inzwischen etwas weiter … musste nur was umdenken um den Code richtig zu plazieren. Hab aber schon eine Teilausgabe 😉 Trotzdem sind deine Hinweise immer hilfreich!!

    PS: Perfekt – erledigt!

Ansicht von 10 Antworten – 1 bis 10 (von insgesamt 10)

Du musst angemeldet sein, um auf dieses Thema zu antworten.