Sisu Marketing

WordPress: lisage dünaamiliselt JavaScript või PHP, kasutades postituse ID-d

Üks jõupingutusi, mille kallal ma sel aastal tõesti töötanud olen Martech Zone pakub mõningaid lihtsaid veebirakendused mis on meie külastajatele abiks. Nende taga on mõned põhilised arendusprojektid, mis hõlmavad nii PHP-d kui ka JavaScripti (peamiselt jQuery).

koos WordPress, pole aga eriti mugavat viisi lehtede või postituste kirjutamiseks päises soovitud koodiga. Ma ei taha koodi kogu saidile ega taha oma saiti hiiglasliku skriptifailiga aeglustada.

Kui ma rakendusi kirjutama hakkasin, tegin seda kõike functions.php minu lapse teemast ja selle kasutamisest is_single postituse ID-numbriga. Pärast päris mitme rakenduse kasutamist hakkas minu functions.php fail aga üsna kontrollimatuks muutuma.

Üks nutikas lahendus, mille ma WordPress API abil välja mõtlesin, oli lisada a apps kataloog minu lapseteemale, mille sisu loetakse. Kui failinimi vastab postituse ID-le, sisaldab see JavaScripti ja/või PHP-faili faililaiendi põhjal. Mõnel minu rakendusel on kohandatud PHP, mõnel ainult JavaScript ja mõnel mõlemad. See skript töötab igas stsenaariumis!

Lisa postituse ID-le JavaScripti või PHP-fail

Siin on kena lahendus, mille peale ma tulin. Lisaksin, et mul on mõned abi ChatGPT-lt ka selle lahenduse puhul! Teine probleem oli see, et ma ei tahtnud funktsiooni käivitada nii, et iga külastaja külastaks saidi iga lehte või postitust, seega kasutan WordPressi mööduv meetod tulemuste vahemällu salvestamiseks andmebaasi... antud juhul üheks tunniks (1 sekundiks). Võin selle lõpuks muuta korraks päevas, aga praegu sobib tund aega.

function include_app_file() {
    // Check if this is a single post
    if (is_single()) {
        // Get the file path of the "apps" subdirectory from the transient cache
        $apps_dir = get_transient('apps_dir');
        
        // If the cache is empty, get the file path and store it in the cache
        if (false === $apps_dir) {
            $apps_dir = get_stylesheet_directory() . '/apps/';
            set_transient('apps_dir', $apps_dir, 3600);
        }
        
        // Construct the file names based on the post ID
        $js_file_name = get_the_ID() . '.js';
        $php_file_name = get_the_ID() . '.php';
        
        // Check if the JS file exists
        if (file_exists($apps_dir . $js_file_name)) {
            // If the JS file exists, include it in the head section of the page
            wp_enqueue_script(get_the_ID(), get_stylesheet_directory_uri() . '/apps/' . $js_file_name, array(), null, true);
        }
        
        // Check if the PHP file exists
        if (file_exists($apps_dir . $php_file_name)) {
            // If the PHP file exists, include it
            include($apps_dir . $php_file_name);
        }
    }
}
add_action('wp_head', 'include_app_file');

Nüüd ei pea ma isegi oma functions.php faili puutuma ja minu JavaScripti ja PHP funktsioonid on minu failis kenasti korraldatud. apps kataloog! Ma pole veel kõigi rakenduste migreerimisega lõpetanud... aga varsti teen seda ja siis saan palju väiksema vaevaga kiiresti rohkem rakendusi arendada.

Selle lähenemisviisi kasutamiseks peate vaid lisama selle koodi oma lapseteema faili functions.php ja seejärel lisama kataloogi nimega app oma lapseteema kausta. Kui arendate lehte, kuhu soovite lisada konkreetse JavaScripti või PHP-faili, lisage need failid lihtsalt postituse ID-numbriga.

Näiteks mul on rakendus, mis teisendab read CSV-failiks või CSV-failideksSee konkreetne rakendus kasutab ainult JavaScripti (ja jQuery't), seega lisasin lihtsalt faili apps kataloog. Postituse ID on 123884, seega lisasin faili 123884.js oma rakenduste kataloogi, kleepisin koodi ja olingi valmis!

Koodipiirangud

Selle funktsiooniga kogesin siiski ühte piirangut ja see oli minu e-posti musta nimekirja kontrollijaProbleem on selles, et see kood kasutab WordPressi AJAX funktsionaalsust ja pidin funktsioonid deklareerima failis functions.php, mitte dünaamilises lisamisfailis postituse ID-l.

Kui soovid seda koodi kasutada, siis tee seda... Oleksin tänulik krediidi eest või saada mulle ehk jootraha!

Saada Douglas Karr nipp!

Douglas Karr

Douglas Karr on SaaS-i ja tehisintellekti ettevõtetele spetsialiseerunud turundusjuht, kes aitab laiendada turundustegevust, edendada nõudluse genereerimist ja rakendada tehisintellektil põhinevaid strateegiaid. Ta on ettevõtte asutaja ja väljaandja. Martech Zone, juhtiv väljaanne… Veel »
Tagasi üles nupule
lähedal

Adblock tuvastatud

Me toetume reklaamidele ja sponsorlusele, et säilitada Martech Zone tasuta. Palun kaaluge reklaamiblokeerija keelamist või toetage meid taskukohase ja reklaamivaba aastase liikmelisusega (10 USA dollarit):

Registreeru aastaseks liikmeks