Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Estrazione valori da uno shortcode wordpress

    Ciao e buona sera PHP Developers,
    ho un problema che mi tormenta da parecchio tempo -.-
    Praticamente avrei bisogno di estrarre del contenuto da una funzione shortcode di wordpress.
    Sembra una cosa semplice (premetto che da poco sono entrato nel mondo PHP xD) ma per me non lo è :P di seguito il codice:
    Codice PHP:
    add_shortcode("email""extract_email");
    function 
    extract_email$attr$email null ){
        
    //Estraggo gli attributi passati
        
    extractshortcode_atts( array( 'class' => 'extract_email' ), $attr));
     
        
    //Controllo che esista del contenuto inserito
        
    if( $email ){
            
    //creo il paragraph
            
    $p "<p class=" $class ">" $email "</p>";
        }
        return 
    $p;

    Adesso quello che vorrei veramente è estrarre il valore che è contenuto nella variabile $email e utilizzarla in una funzione esterna ad essi. Ho provato a impostare la variabile $p come globale per renderla visibile alle altre funzioni ma niente, nessun risultato.
    Voi come fareste in questo caso?
    Mi farebbe tanto piacere se mi aiutaste perchè sto in delirio -.- ahah Grazie mille in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    hai provato a:
    1) definire una costante con il valore
    2) rendere la variabile globale con global?

  3. #3
    Ok, a definire la variabile globale (in questo caso $p) l'ho già fatto e richiamandola esternamente da un'altra funzione non mi va, mentre per la costante ancora non l'implementata. Nello specifico cosa vorresti dire con 'il valore'?
    Cioè devo definirlo io un valore?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    innanzi tutto ti serve la variabile $p o $email?
    Comunque hai provato facendo

    global $email, $p;
    o
    define("EMAIL", $email);
    define("P", $p);

  5. #5
    A me serve solo la variabile $email.
    Ho provato a fare:
    Codice PHP:
    global $email;
    add_shortcode("email""extract_email");
    function 
    extract_email$attr$email null ){    
        
    //Estraggo gli attributi passati
        
    extractshortcode_atts( array( 'class' => 'extract_email' ), $attr));
     
        
    //Controllo che esista del contenuto inserito
        
    if( $email ){
            
    //Creo la box
            
    $p "<p class=" $class ">" $email "</p>";
        }
        return 
    $p;
    }
    echo 
    $email
    o anche con:
    Codice PHP:
    define("EMAIL"$email);
    add_shortcode("email""extract_email");
    function 
    extract_email$attr$email null ){    
        
    //Estraggo gli attributi passati
        
    extractshortcode_atts( array( 'class' => 'extract_email' ), $attr));
     
        
    //Controllo che esista del contenuto inserito
        
    if( $email ){
            
    //Creo la box
            
    $p "<p class=" $class ">" $email "</p>";
        }
        return 
    $p;
    }
    echo 
    constant("EMAIL"); 
    ma niente -.-
    Sarò mica io a sbagliare da qualche parte? -.-

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    innanzitutto non capisco perchè rendi globale $p se poi ti serve la variabile $email

    comunque

    function extract_email( $attr, $email = null ){
    global $email;
    //Estraggo gli attributi passati
    extract( shortcode_atts( array( 'class' => 'extract_email' ), $attr));

    //Controllo che esista del contenuto inserito
    if( $email ){
    //Creo la box
    $p = "<p class=" . $class . ">" . $email . "</p>";
    }
    return
    $p;
    }


    e quando ci sta l'altra funzione devi renderla globale anche li

    function altra_funzione(){
    global $email;
    echo $email;
    }


    oppure


    add_shortcode("email", "extract_email");
    function
    extract_email( $attr, $email = null ){
    define("EMAIL", $email);
    //Estraggo gli attributi passati
    extract( shortcode_atts( array( 'class' => 'extract_email' ), $attr));

    //Controllo che esista del contenuto inserito
    if( $email ){
    //Creo la box
    $p = "<p class=" . $class . ">" . $email . "</p>";
    }
    return
    $p;
    }
    echo
    EMAIL;

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    innanzitutto non capisco perchè rendi globale $p se poi ti serve la variabile $email e perchè lo fai al di fuori della funzione.

    comunque

    Codice PHP:
        function extract_email$attr$email null ){
        global 
    $email;
        
    //Estraggo gli attributi passati
        
    extractshortcode_atts( array( 'class' => 'extract_email' ), $attr));

        
    //Controllo che esista del contenuto inserito
        
    if( $email ){
        
    //Creo la box
        
    $p "<p class=" $class ">" $email "</p>";
        }
        return 
    $p;
        } 
    e quando ci sta l'altra funzione devi renderla globale anche li

    Codice PHP:
        function altra_funzione(){
        global 
    $email;
        echo 
    $email;
        } 
    oppure

    Codice PHP:
        add_shortcode("email""extract_email");
        function 
    extract_email$attr$email null ){
        
    define("EMAIL"$email);
        
    //Estraggo gli attributi passati
        
    extractshortcode_atts( array( 'class' => 'extract_email' ), $attr));

        
    //Controllo che esista del contenuto inserito
        
    if( $email ){
        
    //Creo la box
        
    $p "<p class=" $class ">" $email "</p>";
        }
        return 
    $p;
        }
        echo 
    EMAIL

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.