Supporto » Sviluppare con WordPress » Passare variabili php con le pagine WordPress

  • Ciao a tutti.

    Per favore ho bisogno di un aiuto.

    Ho la necessità di passare variabili nelle pagine WP nel seguente modo:

    nomesito.it/demo/variabile1/
    nomesito.it/demo/variabile1/variabile2/

    In pratica devo passare lo slug delle pagine (variabile1 e 2) quando utilizzo il determinato template di pagina.

    Ho provato con il codice che incollo qui sotto ma non funziona come vorrei perchè qualsiasi variante che scrivo nella url viene passata invece di restituire un errore 404 e passare la variante solo quando la pagina variante1 e/o variante2 esistono realmente.

    Grazie mille in anticipo.

    functions.php

    add_action( 'init', 'isw_add_rules' );
    function isw_add_rules()
    {
    add_rewrite_rule(
        '^demo/([^/]*)/([^/]*)/?',
        'index.php?page_id=12112&autore=$matches[1]&titolo=$matches[2]',
        'top');
    add_rewrite_tag('%autore%','([^&]+)');
    add_rewrite_tag('%titolo%','([^&]+)');
    //flush_rewrite_rules();
    }

    template.php

    <?php 
    $autore = get_query_var( 'autore' );
    $titolo = get_query_var( 'titolo' );
    echo  $titolo . '</br>';
    echo  $autore;
    ?>
Stai vedendo 2 repliche - dal 1 al 2 (di 2 totali)
  • Ciao @ermando,
    hai questo problema perché quello che stai cercando di fare non rispetta la logica WordPress.

    Scusa se te lo chiedo direttamente ma: cosa stai cercando di realizzare?

    Te lo chiedo direttamente perché con molta probabilità la logica di WordPress non applica la stessa logica dello sviluppo PHP e le UEL vengono utilizzate dalla piattaforma stessa per conoscere quali sono i dati che desideriamo ottenere dal database.

    Come hai già scoperto da solo, con le funzioni get_querty_var() otteniamo i parametri che vengono passate dalla piattaforma e se il tuo interesse è quello di ottenere il titolo e l’autore di un post esistono delle funzioni specifiche che ti permettono di farlo: the_title() e the_author().

    Ti consiglio di leggere nel dettaglio il Codex di questa piattaforma perché scoprirai che molte delle informazioni che sono relative a un articolo o a una pagina (autore, titolo, testo, commenti, immagini allegate ecc…) possono essere ottenute direttamente dalle funzioni interne della piattaforma.

    Se invece il tuo obiettivo è quello di passare dei dati da una pagina a un altra sarebbe bene capire di che dati stiamo parlando e al limite ottenerli passando soltanto l’ID dell’articolo precedente e sfruttando di conseguenza le funzioni WordPress per ottenere i dati di cui hai bisogno.

    Questi sono errori molto comuni che vengono fatti quando non sappiamo bene come “pensa” WordPress e come gestisce i dati.

    Non ti arrendere e non esitare a rispondere a questo topic per risolvere il tuo problema.

    A presto,
    Andrea

    Ciao @pr0v4,

    Ti ringrazio per la tua cortese e esaustiva risposta.

    Sto tentando di realizzare una sezione del sito dedicata alle offerte di lavoro aggregate da Indeed includendo uno script PHP esterno a WordPress. Quindi devo passare le due varianti “città” e “professione” allo script PHP. Le due varianti sono lo Slug e il titolo delle pagine.

    In questo modo:

    …com/offerte/
    …com/offerte/lazio/ variante Lazio
    …com/offerte/roma/ variante Roma
    …com/offerte/roma/autista/ variante Roma e variante autista (separate)

    Le pagine le creo manualmente visto che la sezione non avrà più di 20 pagine.

    Non voglio usare plugins perchè ho personalizzato molto lo script PHP e tramite le varianti posso visualizzare specifici testi e lavori correlati in base alla città o professione.

    Grazie e a presto,
    Ermando

Stai vedendo 2 repliche - dal 1 al 2 (di 2 totali)
  • Devi essere collegato per rispondere a questo topic.