Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di fostex
    Registrato dal
    Mar 2000
    Messaggi
    136

    [Wordpress] visibilità variabile/array in una funzione

    Ciao,
    Sto cercando di inserire questo codice per un plugin.

    $settings['field_2_4'] è un array con gli id delle pagine proveniente da un campo input (ad es. "8, 3294, 4052, 4053")

    Codice PHP:
    print_r("<pre>".$settings['field_2_4']."</pre>"); // se lo stampo qui l'array è visibile

    /////*** Per far caricare i css e js di contact form 7 solo nelle pagine con ID ***/////
    include_once( ABSPATH 'wp-admin/includes/plugin.php' ); //Controlla se il Plugin contact form 7 è attivo
    if ( is_plugin_active'contact-form-7/wp-contact-form-7.php' ) ){
            
    add_action'wp_enqueue_scripts''custom_contact_script_conditional_loading'); 
    }

    function 
    custom_contact_script_conditional_loading(){

    print_r("<pre>".$settings['field_2_4']."</pre>"); // se invece lo stampo qui l'array non esiste.

             
    if(! is_page($settings['field_2_4']))   { // quindi qui fallisce...
                
    wp_dequeue_script('contact-form-7'); // Dequeue JS Script file.
                
    wp_dequeue_style('contact-form-7');  // Dequeue CSS file. 
            
    }
        } 
    Qualche idea?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Non prenderla nel modo sbagliato, te lo sto solo dicendo per farti capire il problema, ma devi imparare php prima di scrivere un plugin per Wordpress.

    Qui il problema è lo scope della variabile, nel primo print_r dove vedi correttamente i dati, sei fuori dalla funzione custom_contact_script_conditional_loading(), quando entri nella funzione quella variabile non è più visibile perché fuori dallo scope. Per utilizzarla nella funzione devi passargliela come parametro.

  3. #3
    Utente di HTML.it L'avatar di fostex
    Registrato dal
    Mar 2000
    Messaggi
    136
    e come faccio a passargliela come parametro quando la funzione viene chiamata con add_action?
    Puoi farmi un esempio?

    grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Se come credo quel $settings viene da get_option() in questo caso ti conviene richiamare nuovamente get_option() all'interno di custom_contact_script_conditional_loading()

  5. #5
    Utente di HTML.it L'avatar di fostex
    Registrato dal
    Mar 2000
    Messaggi
    136
    Acci! Grazie!
    Così sembra funzionare!
    Codice PHP:
    function custom_contact_script_conditional_loading(){
        
    $settings = (array) get_option'my-plugin-settings' );
          
    $result_ar explode(','$settings['field_2_4']); // recreo l'array    
        //var_dump($result_ar);

             
    if(! is_page($result_ar))   {
                
    wp_dequeue_script('contact-form-7'); // Dequeue JS Script file.
                
    wp_dequeue_style('contact-form-7');  // Dequeue CSS file. 
            
    }


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.