- Home
- Categorie
- Coding e Sistemistica
- WordPress
- Campi personalizzati nei post
-
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.
-
Nessun aiuto? Grazie.
-
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.
-
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ì!
-
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.
-
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?
-
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.
-
Con il css come potrei ottenere il risultato da me voluto?
Si, lo ho capito da come scrive.
-
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.
-
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
-
@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.
-
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