Personalizzato Post Tipo di loop all'interno Shortcode
-
16-10-2019 - |
Domanda
Sono davvero in perdita per spiegare perché questo non sta funzionando:
Sto usando uno shortcode per visualizzare una query su un tipo di messaggio personalizzato + tassonomia, questo è il segmento di esso:
// - arguments -
$args = array(
'post_type' => 'customposttypename',
'taxonomyname' => 'alpha',
'post_status' => 'publish',
);
// - query -
$my_query = null;
$my_query = new WP_query($args);
while ($my_query->have_posts()) : $my_query->the_post();
// - variables -
$custom = get_post_custom($post->ID);
... e poi le variabili andare avanti. Il fatto è, però, quando si esegue il ciclo, mi mostra tutto il contenuto del post predefinito (cioè titolo, contenuto, ecc), ma si rifiuta di mostrare i contenuti di tipo messaggio personalizzato e ferma sull'ultima riga sopra (linea 145), cioè $custom = get_post_custom($post->ID);
dandomi il seguente errore ..
Avviso: Undefined variable: in post C: \ xampplite ... \ functions.php on line 145
Avviso: Cercando di ottenere la proprietà di non oggetto C: \ xampplite ... \ functions.php on line 145
Poi qui mi mostra il titolo, contenuto, ecc normalmente (proprio nessun personalizzato messaggio contenuto tipo)
Qualcuno ha idea di cosa' che sto facendo di sbagliato?
Grazie!
Soluzione
Avviso: Cercando di ottenere la proprietà di non-oggetto
Volesse indciate che $post
non ha alcuna portata all'interno vostra funzione. Una soluzione semplice sarebbe di globalizzare $post
quindi ha portata, fissando in modo efficace l'errore.
Tuttavia, ogni volta che si crea una query, o esegue il metodo loop e chiamate the_post
questo ti dà l'accesso al WordPress modello tag .
Invece di inserire dei comandi di livello mondiale che si potrebbe chiamare get_the_ID()
che dovrebbe naturalmente contenere id della data di posta (es. Il post corrente per quella iterazione del ciclo).
Aggiorna il tuo linea di problema a leggere ..
$custom = get_post_custom( get_the_ID() );
E che dovrebbe chiarire il problema, ovviamente notando dare portata $post
all'interno della funzione sarebbe anche il lavoro, semplicemente sarebbe non guardare come poetica ..;)
Piccolo domanda lato posteriore per il richiedente, che cosa stai cercando quando si chiama get_post_custom
, stai controllando per alcuni particolari chiavi di meta, o ciclare su ogni elemento meta a trovare? Ci può essere qualche margine di miglioramento lì (se siete interessati).