Mam niestandardowy typ postu o nazwie „oprogramowanie”, w którym znajdują się różne niestandardowe pola, takie jak napisy, cena, zrzuty ekranu, link do pobrania itp. Stworzyłem funkcję umożliwiającą korzystanie z okna edycji tinyMCE dla niektórych z tych niestandardowych pól. Próbowałem wyświetlić te pola na stronie, ale bez powodzenia.
Metoda, której używam jest następująca:
<h1><?php the_title();?></h1>
<h3><?php echo get_post_meta(get_the_ID(), 'subtitle', TRUE); ?></h3>
Oto link do strony.
Poniżej <hr/>
na stronie znajduje się lista wszystkich utworzonych meta. TYLKO jednym z pól, które zostaną wyświetlone, jest „cena” z jakiegoś dziwnego powodu.
Czy ktoś ma pojęcie, czego mi brakuje?
get_post_meta()
funkcja i jeśli wywołujesz ją w pętli, powinna ona działać ... Chyba że nie używasz właściwej nazwy pola niestandardowego. Często mają prefiks, jeśli są implementowane za pomocą wtyczki takiej jak meta-box. Czy możesz opublikować kod, w którym deklarujesz pola niestandardowe? Rozwiązaniem byłoby otwarcie tabeli wp_postmeta w PhpMyAdmin i przeszukanie kolumnymeta_key
LIKE% ...% i określenie „podtytuł” jako wartości meta_key. Zobaczysz dokładnie pod jaką nazwą Wordpress przechowuje twoje niestandardowe pole.Odpowiedzi:
Cóż, używasz:
Mówisz więc do Wordpress, aby uzyskać wartość meta pola „napisów” i że zwracana wartość ma format ciągu. Zobacz get_post_meta () docu .
Aby uzyskać wszystkie metadane postu, należy zamiast tego użyć funkcji get_post_custom () . Na przykład, jeśli jesteś w pętli:
Spowoduje to zwrócenie wszystkich metadanych wpisu. Jeśli chcesz na przykład sprawdzić pole meta „cena”:
źródło
$custom['price']
zwraca tablicę, więc być może trzeba to zrobić$custom['price'][0]
użyj tego kodu, aby rozwiązać problem.
źródło