• User Attivo

    Campi personalizzati nei post

    Salve, nel mio sito di videogiochi sto cercando di creare, in un post, un box con tutte le informazioni del videogioco.
    Girando in rete ho trovato questo codice da inserire in functions.php
    [PHP]$post_custom_fields =array( "post_image" => array( "name" => "post_image", "std" => "", "title" => "Post Image Path (eg. /wp-content/uploads/thundercats.jpg):", "description" => "" ), "post_showcase" => array( "name" => "post_showcase", "std" => "", "title" => "Showcase Image Path (only required if image resizing is disabled):", "description" => "" ), "post_summary" => array( "name" => "post_title", "std" => "", "title" => "Short Title:", "description" => "" ), "post_type" => array( "name" => "post_type", "std" => "", "title" => "Post Type (eg. Review, Preview, Interview, etc.):", "description" => "" ), "review_image" => array( "name" => "review_image", "std" => "", "title" => "Review Cover Art Path (eg. /wp-content/uploads/gearsofwar.jpg):", "description" => "" ), "review_tnail" => array( "name" => "review_tnail", "std" => "", "title" => "Review Cover Thumbnail Path (only required if image resizing is disabled):", "description" => "" ), "review_score" => array( "name" => "review_score", "std" => "", "title" => "Review Score (Out of 5. eg. 2, 3.5, 5, etc.):", "description" => "" ), "review_name" => array( "name" => "review_name", "std" => "", "title" => "Game Name:", "description" => "" ), "review_platforms" => array( "name" => "review_platforms", "std" => "", "title" => "Platforms:", "description" => "" ), "review_publishers" => array( "name" => "review_publishers", "std" => "", "title" => "Publishers:", "description" => "" ), "review_developers" => array( "name" => "review_developers", "std" => "", "title" => "Developers:", "description" => "" ), "review_genres" => array( "name" => "review_genres", "std" => "", "title" => "Genres:", "description" => "" ), "review_release" => array( "name" => "review_release", "std" => "", "title" => "Release Date:", "description" => "" ), "review_rating" => array( "name" => "review_rating", "std" => "", "title" => "ESRB Rating:", "description" => "" )); function post_custom_fields() { global $post, $post_custom_fields; foreach($post_custom_fields as $meta_box) { $meta_box_value = stripslashes(get_post_meta($post->ID, $meta_box['name'].'_value', true)); if($meta_box_value == "") $meta_box_value = $meta_box['std']; echo '<p style="margin-bottom:10px;">'; echo'<input type="hidden" name="'.$meta_box['name'].'_noncename" id="'.$meta_box['name'].'_noncename" value="'.wp_create_nonce( plugin_basename(FILE) ).'" />'; echo'<strong>'.$meta_box['title'].'</strong>'; echo'<input type="text" name="'.$meta_box['name'].'_value" value="'.attribute_escape($meta_box_value).'" style="width:98%;" /><br />'; echo '</p>'; }} function create_meta_box() { global $theme_name; if ( function_exists('add_meta_box') ) { add_meta_box( 'new-meta-boxes', 'Additional Information', 'post_custom_fields', 'post', 'normal', 'high' ); }} function save_postdata( $post_id ) { global $post, $post_custom_fields; foreach($post_custom_fields as $meta_box) { // Verify if ( !wp_verify_nonce( $_POST[$meta_box['name'].'_noncename'], plugin_basename(FILE) )) { return $post_id; } if ( 'page' == $_POST['post_type'] ) { if ( !current_user_can( 'edit_page', $post_id )) return $post_id; } else { if ( !current_user_can( 'edit_post', $post_id )) return $post_id; } $data = $_POST[$meta_box['name'].'_value']; if(get_post_meta($post_id, $meta_box['name'].'_value') == "") add_post_meta($post_id, $meta_box['name'].'_value', $data, true); elseif($data != get_post_meta($post_id, $meta_box['name'].'_value', true)) update_post_meta($post_id, $meta_box['name'].'_value', $data); elseif($data == "") delete_post_meta($post_id, $meta_box['name'].'_value', get_post_meta($post_id, $meta_box['name'].'_value', true)); }} add_action('admin_menu', 'create_meta_box');add_action('save_post', 'save_postdata');
    [/PHP]

    Quando vado a postare l'articolo, sotto, c'è il campo Adding Information, con tutti i box. Tutto perfetto, ma c'è un problema.
    Quando inserisco i dati nei vari box e pubblico, nell'articolo non compare nulla!
    Una mano? Grazie.


  • User Attivo

    Nessun aiuto? Grazie.


  • User Attivo

    Ti hanno già risposto ieri sull'altro forum dove hai postato la stessa domanda, comunque se non metti il codice di richiamo, la cui forma base è <?php the_meta(); ?> , nel file template dove vuoi che appaiano i custom field è ovvio che non vedrai nulla.
    Ricordo che quando si pubblica un codice preso dal web è sempre buona norma, come recita il regolamento, citarne la fonte.


  • User Attivo

    Ciao, grazie per la risposta, L'autore di questo script è tutt'ora sconosciuto. Comunque ho inserito il codice <?php the_meta(); ?> nel single.php , ma purtroppo questo è il risultato.

    • rating: -
    • post_image_value:
    • post_showcase_value:
    • post_title_value: Crysis 2
    • post_type_value: Review
    • review_score_value: 8
    • review_name_value: Crysis 2
    • review_platforms_value: PC
    • review_publishers_value: Ubisoft
    • review_developers_value: Ubisoft
    • review_genres_value: Action
    • review_release_value: 22 Luglio 201

    Mi esce come una lista, e non dovrebbe fare così!


  • User Attivo

    Quello che ti ho postato è il codice base che ti mostra la key e la value, tradotto in italiano il nome e il valore.
    Sarà sconosciuto l'autore ma non di certo la pagina web da cui l'hai letto.
    Forse in quella pagina c'è anche quale tipo di codice inserire, potrebbe essere questo <?php echo get_post_meta($post->ID, 'key', true); ?> come altri.
    In tutti i modi il codice base che ti ho postato prima dovrebbe creare delle classi sia per il nome che per il valore, se non riesci a trovare il codice adatto potresti con il css nascondere la classe del nome.


  • User Attivo

    Ciao, purtroppo ho dei problemi con wordpress, lo uso da poco e non sono ancora molto esperto. Il link non lo posso inserire perchè non ho 50 messaggi e non sono premium.
    Mentre non capisco ancora cosa inserire nel single .php
    Grazie mille per l'aiuto.
    Il codice da lei postato cosa fa?


  • User Attivo

    google .it
    per mettere un link basta inserire degli spazi e togliere http e www.
    Se non trovi nessun codice che te lo faccia funzionare utilizza il plugin che ti ha consigliato manetta sull'altro forum.
    Rileggiti il mio post precedente che l'ho modificato.

    Sei il primo che mi da del lei, devi aver capito, non so come, che sono avanti con gli anni.


  • User Attivo

    Con il css come potrei ottenere il risultato da me voluto?
    Si, lo ho capito da come scrive.


  • User Attivo

    Comunque sto usando Advanced Custom Field, ho creato i campi ma ora è scomparso il box di scrittura, come mai?
    Il campo dell'immagine
    <img src="<?php the_field('hero_image'); ?>
    questa stringa non funziona! Altro mistero. Grazie.


  • User Attivo

    Il codice non è completo:

    <img src="<?[php](http://www.giorgiotave.it/wikigt/os/PHP) the_field('hero_image'); ?>
    

    questo è quello giusto:

    <img src="<?[php](http://www.giorgiotave.it/wikigt/os/PHP) the_field('hero_image'); ?>" />
    

    @elmanisero: "Sei il primo che mi da del lei, devi aver capito, non so come, che sono avanti con gli anni"....
    Tranquillo sei in buona compagnia 🙂


  • User Attivo

    @respawn said:

    Il link non lo posso inserire perchè.......
    Adesso che sai come fare potrebbe essere utile vedere quel codice, se non ti disturba troppo.

    @manetta said:

    Tranquillo sei in buona compagnia 🙂
    Magari, aggiungi 10 ai tuoi e ci siamo.


  • User Newbie

    Ciao, io utilizzo il plugin Magic Fields 2 per i custom field. Se ti serve una mano per il codice da usare con questo plugin, chiedi pure che lo posto.
    Ciao