bloginfo(‘template_url’) in AJAX abfrage nutzen

  • Hello at all,

    ich erstelle gerade eine Website, bei der ich seitenteile per AJAX (nach Interaktion) nachladen lasse. Alles funktioniert wie gehabt, jedoch kann ich die WordPress Snippets wie bloginfo(‘template_url’) nicht verwenden, jetzt könnte ich den Pfad natürlich per __DIR__ / etc. / etc. einpflegen, allerdings finde ich es Sinnvoll bei einer Lösung zu bleiben und nicht ständig hin und her zu switchen...

    Ich vermute die wp-load.php mit reinzuladen ist wenig effizient, hat jemand eine anderweitige Lösung parat?

    LG

    Einmal editiert, zuletzt von Jonny.Click (15. Dezember 2017 um 17:45)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren


  • ich erstelle gerade eine Website, bei der ich seitenteile per AJAX (nach Interaktion) nachladen lasse. Alles funktioniert wie gehabt, jedoch kann ich die WordPress Snippets wie bloginfo(‘template_url’) nicht verwenden

    Wenn Website-Inhalte nachgeladen oder verändert werden ohne dass die Website dazu vollständig neu geladen werden muss spricht man von Ajax (Asynchronous JavaScript and XML) - warum möchtest du - zu so einem späten zeitpunkt - bloginfo(‘template_url’) verwenden? es werden doch nur Website-Inhalte nachgeladen.


    jetzt könnte ich den Pfad natürlich per __DIR__ / etc. / etc. einpflegen,

    Suchst du
    get_template_directory_uri()
    oder etc.,
    get_template_directory()

    oder etc.
    https://developer.wordpress.org/reference/functions/get_bloginfo/


    hat jemand eine anderweitige Lösung parat?

    Welches Problem?

    Evtl. suchst du ja auch nur

    PHP
    <?php
    function enqueue_scripts_styles_init() {
    	wp_enqueue_script( 'ajax-script', get_stylesheet_directory_uri().'/js/script.js', array('jquery'), 1.0 ); // jQuery will be included automatically
    	// get_template_directory_uri() . '/js/script.js'; // Inside a parent theme
    	// get_stylesheet_directory_uri() . '/js/script.js'; // Inside a child theme
    	// plugins_url( '/js/script.js', __FILE__ ); // Inside a plugin
    	wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) ); // setting ajaxurl
    }
    add_action('init', 'enqueue_scripts_styles_init');

    Mit offenen Augen träumen

  • Danke für die fixe Antwort,

    Zitat

    warum möchtest du - zu so einem späten zeitpunkt - bloginfo(‘template_url’) verwenden? es werden doch nur Website-Inhalte nachgeladen.

    ...da ich Tabellenzeilen neu lade und diese unter anderem ein icon enthalten

  • Danke für die fixe Antwort,


    ...da ich Tabellenzeilen neu lade und diese unter anderem ein icon enthalten

    Du könntest die Icons auch z.B. als Background Image in CSS definieren. Scheint mir in dem Fall die sinnigere Variante zu sein.

    Oder du verwendest, wie schon von r23 vorgeschlagen, wp_localize_script.

    Einmal editiert, zuletzt von danielgoehr (15. Dezember 2017 um 21:00)

  • Hey, :)

    Zitat

    Du könntest die Icons auch z.B. als Background Image in CSS definieren. Scheint mir in dem Fall die sinnigere Variante zu sein.

    ...nee, das ist bei der Menge, an Daten und variablen Bildern keine Lösung. Es handelt sich hierbei um eine Produkt Tabelle, jedes Produkt hat sein eigenes Icon, welches im Übrigen per Backend verändert und angepasst werden kann. Per JS könnte man das sicherlich machen, jedoch ist die Lösung per PHP denke ich nicht die schlechteste...

    Zitat

    Oder du verwendest, wie schon von r23 vorgeschlagen, wp_localize_script.

    Das werde ich mir eben mal etwas genauer anschauen, bin bis grade noch nicht dazu gekommen... :) aktuell habe ich die bilder per readfile(); eingebunden...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!