Nhận nhiệm kỳ đầu tiên


10

Làm thế nào để tôi chỉ nhận được thuật ngữ đầu tiên của một loại bài đăng tùy chỉnh.
Tôi có thể nhận được tất cả - không có vấn đề. Đây là những gì tôi đang sử dụng để lấy tất cả chúng

<?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>

Sẽ đánh giá cao câu trả lời bằng mã của tôi nhưng bất kỳ trợ giúp nào đều được hoan nghênh nhất

Câu trả lời:


23

Tôi không chắc ý của bạn về phân loại 'đầu tiên' ... nhưng,

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

trả về một mảng các đối tượng thuật ngữ phân loại, vì vậy

$term = array_pop($terms);

Sẽ cung cấp cho bạn thuật ngữ đầu tiên trong mảng. Và sau đó:

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

(Bạn có thể muốn bao gồm một số câu lệnh if, trong trường hợp một mảng trống hoặc lỗi được trả về (xem is_wp_error)


chỉ cần thử điều này .. gặp lỗi: Lỗi nghiêm trọng có thể bắt được: Đối tượng của lớp WP_Error không thể được chuyển đổi thành chuỗi trong /home/content/14/6469114/html/wp-content/theme/sagive/single-website.php trên mạng 40
SEO Sagive

trên dòng 40: <? php $ terms = get_the_terms ($ post-> ID, 'sitecat'); mảng_pop ($ điều khoản); tiếng vang '<a href="'.get_term_link($term-> sên,' sitecat ').' "> '. $ term-> name.' </a> '; ?>
SEO Sagive

ok .. lỗi là ở phía tôi - không phải câu trả lời của bạn;) cảm ơn rất nhiều người bạn
Sagive SEO

4

Kể từ phiên bản PHP 5.4, bạn có thể trực tiếp hủy đăng ký một mảng, vì vậy để có được thuật ngữ đầu tiên, bạn chỉ cần thực hiện.

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

Nếu bạn cần một tài sản cụ thể ( nói tên thuật ngữ ) của thuật ngữ đầu tiên, bạn có thể làm như sau

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

BIÊN TẬP

Chỉ cần một lưu ý, điều này không có nhược điểm vì bạn sẽ nhận được một WP_Errorđối tượng nếu phân loại không hợp lệ. Ngoài ra, nếu mảng trả về trống, bạn cũng sẽ nhận được cảnh báo khóa mảng không xác định, vì vậy hãy cẩn thận sử dụng mảng này.


0

Nó làm việc cho tôi. Nó chỉ mang lại thể loại đầu tiên là văn bản, không có neo.

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

1
"Làm việc cho bạn" là gì? Sidenote: break;Sẽ thực sự dừng tuyên bố của bạn, unsetsẽ không bao giờ được kích hoạt và chỉ mục đầu tiên sẽ được xử lý.
kaiser

unset( $term );nên theoforeach vòng lặp của bạn , và không phải bên trong nó :-)
Pieter Goosen

0

Làm thế nào về việc truy cập trực tiếp vào khóa của đối tượng?

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

để bạn có thể truy cập vào đối tượng.

echo $first_term->name;
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.