Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: mostrare meta_key

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    residenza
    Trieste
    Messaggi
    828

    mostrare meta_key

    Il moderatore non ha spostato il mio precedente psot, e quindi ritento (grande spreco di spazio sul web).

    Nella tabella postmeta ho dei dati ognuno con il suo bel post_id+meta_key+meta_value.
    Ho dunque un custom post type creato dal Sig. meta_value. Devo semplicemente fare un php echo del meta_value (cioè mostrare il nome del Sig.) una volta riconosciuto chi è appunto l'autore della pagina. Tutti i codici che ho tentato sono vani. E' troppo elementare per funzionare?

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, puoi prendere info utente con questa funzione se ti trovi una pagina creata da questo. Per defautl nella funzione viene già recuperato il suo ID e quindi hai tutti i sui meta data.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2007
    residenza
    Trieste
    Messaggi
    828
    buongiorno. Il tuo link non funziona... ritenta (o forse intendevi solo get_the_author_meta ?)

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2007
    residenza
    Trieste
    Messaggi
    828
    Niente, non ne vuole sapere. tanto semplice ma impossibile. A questo punto posto tutto il codice e spero mi diciate dove sbaglio:
    Codice PHP:
    State visualizzando le vetrine di proprietà dell'azienda <strong><?php echo get_the_ID(); ?></strong>
    <?php get_the_author_meta$field 'company_name'$user_id false ); ?>, ed in particolare:
    <h4 align="center"><?php single_post_title(); ?></h4>
    tutto dovrebbe comparire in questa sidebar. Io voglio mostrare il value company_name, ovviamente diverso per ogni post
    Ultima modifica di stardom; 26-10-2016 a 12:31

  5. #5
    Nel titolo della discussione dovresti indicare anche di quale CMS si sta parlando cosicché chi legge può entrare ed eventualmente aiutare.
    Non sei un programmatore vero? Hai copiato e incollato del codice senza comprenderlo.

    codice:
    get_the_author_meta( $field = 'company_name', $user_id = false );
    sembra più la definizione della funzione più che il richiamo della stessa, infatti ci sono i parametri con i valori di default...
    Dovresti richiamarla in questo modo

    codice:
    get_the_author_meta( 'company_name' );
    Ed inoltre dovresti aggiungere l'istruzione echo altrimenti non può stampare nulla.
    In definitiva, prova a scrivere come indicato di seguito e vedi se il problema si risolve:

    codice:
    <?php echo get_the_author_meta( 'company_name' ); ?>

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2007
    residenza
    Trieste
    Messaggi
    828
    non sono un programmatore ma prima di copiare/incollare ho cercato di capire, andando anche a guardare nella table del database...
    La funzione che mi indichi era stat una delle prime che ho tentato. (compreso l'echo).
    Quello che non capisco è, se mi fa l'echo della company_ID, perchè non la company_name che gli corrisponde? Alla fine si tratta del valore di un custom_field.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2007
    residenza
    Trieste
    Messaggi
    828
    Ho fatto un grande passo avanti, dopo un po' di ricerca. Mi manca solo un ultimo pezzetto, e spero ancora nel vs. aiuto.
    Ho utilizzato uno snippet per recuperare il valore del custom_post_type e mostrarlo come shortcode:
    Codice PHP:
    add_shortcode('customfield''shortcode_field');

    function 
    shortcode_field($atts){
      
    extract(shortcode_atts(array(
       
    'post_id' => NULL,
      ), 
    $atts));

      if(!isset(
    $atts[0])) return;
      
    $field esc_attr($atts[0]);

      global 
    $post;
      
    $post_id = (NULL === $post_id) ? $post->ID $post_id;

      return 
    get_post_meta($post_id$fieldtrue);


    Poi ho aggiunto lo shortcode [customfield "company_name" post_id=1] dove mi serve, e quello mostra il valore della key.
    Il problema è che ovviamente mostra il valore assegnato al post con l'ID=1. Io invece avrei bisogno che l'ID (il titolo del post che contiene il customfield) se lo trovasse da solo, dinamicamente. Uno shortcode [field "my_key"] senza ID però non basta.
    Gentilmente, fate uno sforzo e ditemi cosa manca. La pagina è sempre questa (sulla sidebar)

  8. #8
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Se non ho capito male in base all'id devi recuperare un certo custom field (chiave e suo valore).
    Se sei in una pagina o aricolo, di default hai già in pagina l'id corrente usando ad esempio quesa funzione .
    A questo punto senza usare uno shortcode ti basterebbe fare un echo in php di :
    codice:
    echo get_post_meta(ID_RECUPERATO, chiave_da_recuperare);

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2007
    residenza
    Trieste
    Messaggi
    828
    Io non so leggere bene il PHP, ma mi serve un echo che per logica faccia:
    1) leggi ID del post corrente > 2) vai a verificare chi ha creato il post > 3) mostrane il nome
    Essendo il post creato dal frontend, il suo ID non è relativo solo al post ma corrisponde esattamente all'ID del creatore dello stesso, che è poi il value del custom-post-type company_name ma anche il titolo del post. Non so se mi sono spiegato. Ma non capisco molto la logica del tema. In pratica devo fare un echo in cui non dichiaro ID e chiave.. è lui che deve trovarsele interrogando il database.

    Capire come funziona mi serve anche per risolvere il button "torna in azienda". Al momento è impostato su onClick="parent.location='javascript:history.go(-1)'" (torna indietro, ma legge lo storico del browser) laddove a me serve che legga sempre il custom-post-type e torni all'url dell'azienda (proprio perchè posso esser finito su questa pagina da qualsiasi luogo)
    Ultima modifica di stardom; 09-11-2016 a 14:13

  10. #10
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Allora se di custom_post_type stiamo parlando vuol dire che ti riferisci al campo post_type a db presente in wp_posts, dove per i post solitamente è appunto "post" e per i custom quello che hai voluto tu (in questo caso company_name). Se corretto per forza di cose avrai un record nel db in wp_posts dove post_type sarà uguale a "company_name" e in pagini hai già in pagina tutto l'oggetto della pagina o articolo che stai visualizzando in get_post()
    Qui avrai titolo e quant'altro più l'id del creatore (post_author). Tutti i campi custom aggiuntivi presenti in wp_postemeta avranno come post_id l'ID di wp_posts.

Tag per questa discussione

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 © 2025 vBulletin Solutions, Inc. All rights reserved.