Cum să obții valorile meta box - Tutorial WP tuts

2 mar. 2012, 10:42:31
Vizualizări: 36K
Voturi: 2

Am parcurs aceste trei tutoriale pentru a crea metaboxuri personalizate.

  • wp.tutsplus.com/tutorials/reusable-custom-meta-boxes-part-1-intro-and-basic-fields/
  • wp.tutsplus.com/tutorials/reusable-custom-meta-boxes-part-2-advanced-fields/
  • wp.tutsplus.com/tutorials/reusable-custom-meta-boxes-part-3-extra-fields/

dar nu știu cum să apelez valorile din câmpurile individuale. Am folosit acest script PHP

$meta = get_post_meta($post->ID, $field['id'], true);
echo $meta;

dar nu funcționează. Știe cineva ce fac greșit.

aici este fișierul meu functions.php http://www.4shared.com/file/8jmKqGFY/functions.html?

și aici este fișierul meu index.php http://www.4shared.com/file/iAWwZim7/index.html?

6
Comentarii

înlocuiește $field['id'] cu ID-ul real pe care l-ai dat câmpului

Bainternet Bainternet
2 mar. 2012 12:06:32

Am făcut asta, dar nu afișează nimic

Itachi Itachi
2 mar. 2012 12:12:29

Ne poți arăta codul complet al buclei tale?

Alex Older Alex Older
2 mar. 2012 12:56:41

aici este functions.php-ul meu http://www.4shared.com/file/8jmKqGFY/functions.html?

și aici este index.php-ul meu

http://www.4shared.com/file/iAWwZim7/index.html?

Itachi Itachi
4 mar. 2012 17:08:29

Ești sigur că ai cheia meta corectă? Poate încearcă print_r( get_post_custom_keys($post_id) ); și vei vedea toate cheile meta asociate cu acel articol. (De asemenea, pentru partajarea de cod, aș sugera ceva de genul Pastie)

Cristian Cristian
7 mar. 2012 10:59:02

Te rog să lipești codul direct în întrebarea ta -- cel puțin părțile relevante.

chrisguitarguy chrisguitarguy
13 apr. 2012 05:06:13
Arată celelalte 1 comentarii
Toate răspunsurile la întrebare 2
3

După ce am revizuit codul tău, sunt câteva lucruri pe care trebuie să le modifici în funcție de locul unde este stocat conținutul meta.

Dacă încerci

$meta = get_post_meta( get_the_ID(), 'custom_text', TRUE );
echo 'Conținutul meta este: ' . $meta;`

Aceasta ar trebui să-ți returneze meta-ul corespunzător.

Apelezi această funcție pe conținutul paginii, așa că dacă conținutul meta nu este stocat acolo, nu va fi afișat nimic.

Sper că te ajută!

7 mar. 2012 11:07:34
Comentarii

nu, nu funcționează dar am rezolvat :) Soluția este aceasta

$meta = get_post_meta($post->ID, $field['custom_text'], true); echo $meta[custom_text][0];

Mulțumesc pentru ajutor

Itachi Itachi
10 mar. 2012 23:05:52

Nu uita să accepți răspunsul ca în viitor oamenii să știe cum să ajungă la soluția pe care ai găsit-o. De asemenea, este politicos.

Joshua Joshua
21 mai 2012 05:52:46

Te rog postează comentariul tău ca răspuns. M-a ajutat foarte mult!

Cedric Ipkiss Cedric Ipkiss
9 dec. 2017 14:41:40
0

Dacă nu vă aflați într-un fișier de șablon unde nu puteți folosi get_the_ID() (de exemplu, într-un fișier de plugin), mai întâi obțineți un pointer către obiectul post asociat cu conținutul meta și apoi folosiți $post->ID.

De exemplu, dacă ați folosit add_meta_box pentru a defini o funcție care afișează caseta meta (să zicem display_meta_box), puteți prelua valoarea casetei meta astfel:

function display_meta_box( $post ) {
  $meta = get_post_meta($post->ID, "meta_key", true); 
  echo "<input name='x' value='$meta' />";
}
9 dec. 2017 14:53:19