Dapatkan istilah pos pertama


10

Bagaimana saya hanya mendapatkan istilah pertama dari jenis posting khusus.
Saya bisa mendapatkan semuanya - tidak masalah. Ini yang saya gunakan untuk meraih semuanya

<?php foreach ($terms as $term) {echo '<a href="'.get_term_link($term->slug, 'sitecat').'">'.$term->name.'</a>,';} ?> >> <a href="<?php the_permalink(); ?>"><?php the_title('', ''); ?></a></h2></span>

Sangat menghargai jawaban menggunakan kode saya tetapi bantuan sangat disambut

Jawaban:


23

Saya tidak yakin apa yang Anda maksud dengan taksonomi 'pertama' ... tapi,

$terms = get_the_terms( $post->ID, 'mytaxonomy' );

mengembalikan array objek taksonomi, jadi

$term = array_pop($terms);

Akan memberi Anda istilah pertama dalam array. Lalu:

echo '<a href="'.get_term_link($term->slug, 'mytaxonomy').'">'.$term->name.'</a>,'

(Anda mungkin ingin memasukkan beberapa pernyataan if, seandainya array atau kesalahan kosong dikembalikan (lihat is_wp_error)


coba saja ini .. mendapatkan kesalahan: Kesalahan fatal yang dapat ditangkap: Objek kelas WP_Error tidak dapat dikonversi ke string di /home/content/14/6469114/html/wp-content/themes/sagive/single-website.php on line 40
Sagive SEO

on line 40: <? php $ terms = get_the_terms ($ post-> ID, 'sitecat'); array_pop ($ terms); echo '<a href="'.get_term_link($term-> slug,' sitecat ').' "> '. $ term-> name.' </a> '; ?>
Sagive SEO

ok .. kesalahan ada di pihak saya - bukan jawaban Anda;) terima kasih banyak sobat
Sagive SEO

4

Pada PHP 5.4, Anda dapat langsung melakukan dereferensi array, sehingga untuk mendapatkan istilah pertama, Anda bisa melakukannya.

$first_term = get_the_terms( $post->ID, 'TAXONOMY_NAME' )[0];
var_dump( $first_term );

Jika Anda membutuhkan properti tertentu ( sebutkan nama istilah ) dari istilah pertama, Anda dapat melakukan hal berikut

$first_term_name = get_the_terms( $post->ID, 'TAXONOMY_NAME' )[0]->name;
var_dump( $first_term_name );

EDIT

Sekadar catatan, ini memang memiliki penarikan mundur karena Anda akan mendapatkan WP_Errorobjek jika taksonomi tidak valid. Juga, jika array yang dikembalikan kosong, Anda juga akan mendapatkan peringatan kunci array yang tidak ditentukan, jadi gunakan ini dengan hati-hati.


0

Ini berhasil untuk saya. Ini hanya membawa kategori pertama sebagai teks, tanpa jangkar.

$terms = get_the_terms( $post->ID , 'your_custom_taxonomy' ); 
foreach( $terms as $term ) { 
    print $term->name;
    break;
    unset($term);
}

1
Apa "berhasil untukmu"? Sidenote: Ini break;akan benar-benar menghentikan pernyataan Anda, unsettidak akan pernah terpicu dan hanya item pertama yang akan diproses.
kaiser

unset( $term );harus setelahforeach loop Anda , dan tidak di dalamnya :-)
Pieter Goosen

0

bagaimana kalau langsung mengakses kunci objek?

$terms = get_the_terms( $post->ID, 'sitecat' );
$first_term = $terms[0];

sehingga Anda dapat mengakses objek.

echo $first_term->name;
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.