• User

    @overclokk ok grazie questa sera lo farò


    stefanotn 1 Risposta
  • User

    in wordress le chiamatre al database vengono fatte in modo differente e siccome per il momento non so come farle ho creato questo codice che per funzionare funziona ma ho il sospetto che:

    1. require per richiamare un file non sia la scelta migliore
    2. il codice postato sebbene funzioni non è indicato per wordpress
    <?php
    defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
    
    /*
    Plugin Name: My color the board
    Plugin URI: http://www. ..../color-the-board/
    Description: My WordPress color the board - Upload and Activate.
    Author: Agnelli stefano -
    Version: 1.0
     */
    
    function my_color_the_board_style() {
        wp_enqueue_style('my-color-the-board', plugins_url('wp-admin.css', __FILE__));
    }
    add_action('admin_enqueue_scripts', 'my_color_the_board_style');
    add_action('login_enqueue_scripts', 'my_color_the_board_style');
    
    /**************** style del plugin my_color_the_board_style *****************/
    function dashbord_style(){
    			wp_enqueue_style('admin-styles', get_template_directory_uri().'/admin.css');
    }
    add_action('admin_menu','dashbord_style');
    f
    
     /************** inserire le categorie alle immagini e a media ****************/
    function tutsplus_add_attachments_to_categories() {
    
        register_taxonomy_for_object_type( 'category', 'attachment' );
    
    }
    
    add_action( 'init' , 'tutsplus_add_attachments_to_categories' );
    /**************** allargamneto di guttemberg *********************************/
    function gb_gutenberg_admin_styles() {
        echo '
            <style>
                /* Main column width */
                .wp-block {
                    max-width: 1200px;
                }
    
                /* Width of "wide" blocks */
                .wp-block[data-align="wide"] {
                    max-width: 1480px;
                }
    
                /* Width of "full-wide" blocks */
                .wp-block[data-align="full"] {
                    max-width: none;
                }
            </style>
        ';
    }add_action('admin_head', 'gb_gutenberg_admin_styles');
    
    /************************* customizer ********************************************/
    //require (get_theme_file_path('function/function-header.php'));
    //require (get_theme_file_path('function/function-home.php'));
    //require (get_theme_file_path('function/function-slider-gioppino.php'));
    require (get_theme_file_path('function/personalizer-bacheca.php'));
    /******************** sidebar*************************************/
    $args = array(
    	'name'		=> __( 'Sidebar principale', 'theme_text_domain' ),
    	'id'		=> 'sidebar-primary',
    	'description'	=> '',
    	'class'		=> '',
    	'before_widget'	=> '<li id="%1$s" class="widget %2$s">',
    	'after_widget'	=> '</li>',
    	'before_title'	=> '<h2 class="widgettitle">',
    	'after_title'	=> '</h2>' );
    
    register_sidebar( $args );
    /******************** sidebar 2*************************************/
    $args = array(
    	'name'		=> __( 'Sidebar secondaria', 'theme_text_domain' ),
    	'id'		=> 'sidebar-secondary',
    	'description'	=> '',
    	'class'		=> '',
    	'before_widget'	=> '<li id="%1$s" class="widget %2$s">',
    	'after_widget'	=> '</li>',
    	'before_title'	=> '<h2 class="widgettitle">',
    	'after_title'	=> '</h2>' );
    
    register_sidebar( $args );
    
    
    /******************** custom post type *******************/
    
    function custom_post_avviso() {
        $labels = array(
            'name' => 'avviso',
            'singular_name' => 'avviso',
            'add_new' => 'aggiungi un nuovo avviso',
            'add_new_item' => 'Aggiungi un avviso',
            'edit_item' => 'Modifica avviso',
            'new_item' => 'Nuovo avviso',
            'all_items' => 'Tutte gli avvisi',
            'view_item' => 'Visualizza avvisi',
            'search_items' => 'Cerca avviso',
            'not_found' =>  'Nessuna avviso trovata',
            'not_found_in_trash' => 'Nessuna avviso trovata nel cestino',
            'menu_name' => 'Avvisi importanti'
        );
        $args = array(
            'labels' => $labels,
            'description' => 'Contiene i lavori sviluppati',
            'public' => true,
            'menu_position' => 5,
            'menu_icon' => 'dashicons-admin-home',
            'rewrite' => array('slug' => 'avviso'),
            'supports' => array( 'title', 'editor', 'author','thumbnail', 'excerpt', 'comments','custom-fields','comments','revisions','page-attribute','post-format'
     ),
          //  'taxonomies' => array('category'),('post_tag'),
            'has_archive' => true,
        );
        register_post_type( 'avviso', $args );
    }
    add_action( 'init', 'custom_post_avviso' );
    /*********************** nuova tassonomia (categorie particolari per custom post type)*****************************************/
    function create_my_taxonomies() {
          register_taxonomy('categoria-avviso',
                  array(
                    0 => 'avviso',
                    ),
                  array(
                'hierarchical' => 'true',
                'label' =>'categorie speciali',
                'has_archive' => 'true',
                'singular_label'=> 'categoria speciale')
                );}
            add_action('init', 'create_my_taxonomies', 0);
    /**************** escludere unzcategory dal loop*************************************/
    function exclude_category_home( $query ) {
    if ( $query->is_home ) {
    $query->set( 'cat', '-1' );
    }
    return $query;
    }
    
    add_filter( 'pre_get_posts', 'exclude_category_home' );
    
    /***************************************************************************************/
    add_action('admin_menu', 'lamiafunzion_DATA');
    function lamiafunzion_DATA(){
         add_menu_page(__('data mail','menu'),__('account utenti','menu'),'manage_options','mt_top_level_handle','mt_toplevel_page');
       add_submenu_page('mt_top_level_handle',__('mailing list','menu'),__('Mailing List','menu'),'manage_options', 'sub-page', 'mt_top_level_handle');
    
    }
    
    function mt_top_level_handle(){
      echo "<h2 >" . __( 'Mailing List', 'menu' ) . "</h2><h4><u>Pagina per la gestione delle EMAIL provenienti dal form sito nella pagina 'contatti'!</u></h4>";
    
    
      include config.php
      $conn=mysqli_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server");
      mysqli_select_db($conn,$DBName) or die("Impossibile connettersi al database $DBName");
    
                $sql = "SELECT * from utenti";
                $result = $conn->query($sql);
    
               	if ($result->num_rows > 0) {?>
                  <div class="contenutos">id</div><div class="contenutos">Nome</div><div class="contenutos">Eamil</div>
                  <form action="https://127.0.0.1/eccetera" method="post">
    
    <?php
              while($row = $result->fetch_assoc()){?>
              <div class="conteitore">
    
                <div class="contenuto">
    
                  <?php echo '<input type="checkbox" name="check" value='.$row['id'].'>'.$row['id'].'</div><div class="contenuto">'.$row['nome'].'</div><div class="contenuto">'.$row['email'].'</div>';?>
    
               </div>
    <?php                                         }?>
                  </form>
    
    <?php }
    }
    	 function mt_toplevel_page() {
    	  echo "<h2 >" . __( 'DATAMAIL', 'menu' ) . "</h2><h4><u>Pagina per la gestione delle EMAIL provenienti dal form sito nella pagina 'contatti'!</u></h4>";
            /***************************/
            include config.php
    			  $conn=mysqli_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server");
    			  mysqli_select_db($conn,$DBName) or die("Impossibile connettersi al database $DBName");
    
    			            $sql = "SELECT * FROM utenti";
    			            $result = $conn->query($sql);?>
    
    <div class="contenutos">id</div><div class="contenutos">Nome</div><div class="contenutos">Eamil</div><div class="contenutos">Telefono</div><div class="contenutos">messaggio</div><div class="contenutos">data</div><div class="contenutos">acconsento</div>
    
    								<?php 	if ($result->num_rows > 0) {?>
          <form action="https://127.0.0.1/eccetera" method="post">
    			      <?php  while($row = $result->fetch_assoc()){?>
    							<div class="conteitore">
    
    									<div class="contenuto">
    
    			     <?php echo  '<input type="checkbox" name="check[]" value='.$row['id'].'>'.$row['id'].'</div><div class="contenuto">'.$row['nome'].'</div><div class="contenuto">'.$row['email'].'</div><div class="contenuto">'.$row['telefono'].'</div><div class="contenuto">'.$row['messaggio'].'</div><div class="contenuto">'.$row['data'].'</div><div class="contenuto">'.$row['acconsento'].'</div>';?>
    
    							</div>
                                                    <?php  }?>
    
                <div class="wp-block-spazio"></div><input type="submit" class="button button-primary" value="cancella" name="cancella">
    
    
    
            <?php	}else{
    			                              echo "0 results";
    			                              }
    			                                      $conn->close();
    			                                }
    
                if ( isset( $_POST['cancella'] ))
               {
                 $check = $_POST['check'];
                 foreach ($check as $key) {
    
                 include config.php
                $conn=mysqli_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server");
                mysqli_select_db($conn,$DBName) or die("Impossibile connettersi al database $DBName");
                        $sql = "delete from utenti where id='$key'";
                          $result = $conn->query($sql);
                          // code...
                        }
    
                } ?>
              </form>
    
              <?php
    
        /************************************************************/
    
    
    /************* rimozione della voce 'sito web nel form dei commenti '***********/
    
    
    function alpha_comments_defaults( $defaults ) {
        $defaults['id_form'] = '';
        $defaults['id_submit'] = '';
        $defaults['comment_field'] = '<p class="comment-form-comment"><label>' . _x( 'Comment', 'noun' ) . '</label>' .
                              '<textarea name="comment" cols="45" rows="8" aria-required="true"></textarea></p>';
        return $defaults;
    }
    add_filter('comment_form_defaults', 'alpha_comments_defaults');
    
    function alpha_comments_fields( $fields ) {
        $commenter= wp_get_current_commenter();
        $req = get_option( 'require_name_email' );
        $aria_req = ( $req ? " aria-required='true'" : ' ' );
    
        $fields = array(
                            'author' =>
                                    '<p class="comment-form-author"><label>' . __( 'Nome', 'organizziamoviaggi' ) . ( $req ? '<span class="required">*</span>' : '' ) . '</label> ' .
                                    '<input name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30" ' . $aria_req . ' /></p>',
    
                            'email' =>
                                    '<p class="comment-form-email"><label>' . __( 'Email', 'organizziamoviaggi' ) .  ( $req ? '<span class="required">*</span>' : '' ) . '</label> ' .
                                    '<input name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30" ' . $aria_req . ' /></p>',
    
    
    
    												'url' => '',
    
    
        );
    
        return $fields;
    }
    add_filter('comment_form_default_fields', 'alpha_comments_fields');
    
    
    /*************************** fine   *********************************************/
    
    
    ?>
    
    

    overclokk 1 Risposta
  • Moderatore

    @stefanotn Troppa carne al fuoco, partiamo da una cosa alla volta.

    Prima di tutto c'è troppa roba, e si fa confusione, comincia a separare in file diversi ogni funzionalità, per esempio un file solo il codice dei commenti, un file solo il codice per fare le chiamate al db ecc ecc.

    La questione di avere tutto in un pluigin non ti risolve il problema se comunque tieni tutto in un file.

    In che senso

    "require per richiamare un file non sia la scelta migliore"


    g.lanzi 1 Risposta
  • Moderatore

    @overclokk
    Informazione di servizio
    Ho richiesto una modifica al messaggio di @stefanotn per mettere tutto il codice tra i marcatori markdown per il codice. Appena viene approvata dovrebbe per lo meno essere un pochino più facilmente leggibile.


    stefanotn 1 Risposta
  • User

    @overclokk ciao grazie intanto..nel senso che mi domando se fi dia differe fra INCLUDE e REQUIRE ma poi ho letto che sarebbe meglio usare wp_query anziché un chiamata diretta come ho fatto io mi confermi?


    overclokk 1 Risposta
  • User

    @g-lanzi scusa se ho sbagliato credevo che fosse corretto usare```
    ![code_text]


    g.lanzi 1 Risposta
  • Moderatore

    @stefanotn
    Ciao, nessun problema, avevo visto che li avevi usati, ma li avevi inseriti in più punti e questo avevo scombussolato tutto.
    L'uso ufficiale in MD sarebbe:

    • singolo apice prima e dopo una parola per il codice inline come questo.
    • Mentre per un blocco di testo, bisogna usare tre apici su una riga vuota prima e dopo il codice. Puoi evitare di usare i tag html <code></code>
    In questo modo
    

    Poco male, se non ci fosse stato un codice così lungo non faceva quasi alcuna differenza. 🙂


  • Moderatore

    @stefanotn ha detto in rallentamento:

    @overclokk ciao grazie intanto..nel senso che mi domando se fi dia differe fra INCLUDE e REQUIRE ma poi ho letto che sarebbe meglio usare wp_query anziché un chiamata diretta come ho fatto io mi confermi?

    Fanno la stessa cosa, solo che in mancanza di file require genera un erore fatale e blocca l'esecuzione dello script, include invece genera un avviso e continua con l'esecuzione, nel tuo caso visto che il file lo crei tu usa require.

    WP_Query() si usa per creare loop personalizzati https://developer.wordpress.org/reference/classes/wp_query/ se invece devi eseguire query personalizzate per interrogare il db allora si usa $wpdb https://developer.wordpress.org/reference/classes/wpdb/


    stefanotn 1 Risposta
  • User

    @overclokk ah ok grazie ci studierò su, ma nel mio caso il rallentamento è dovuto al modo di mettere i codici come ho fatto io anziché come suggerivi tu separarli in vari file?


    overclokk 1 Risposta
  • Moderatore

    @stefanotn Separare il codice in più file non migliora o peggiora la velocità, migliora la leggibilità che di conseguenza migliora la velocità di lettura del codice da parte umana 😀 alla macchina interessa poco dove lo metti.