2012-12-12 36 views
5

Tôi hy vọng một người nào đó có thể giúp tôi với một vấn đề. Tôi đang xây dựng một trang web tin tức cho một người bạn của tôi. Trang web đang bắt đầu đến với nhau, nhưng tôi không thể tìm hiểu cách thêm chú thích vào hình ảnh nổi bật. Tôi đã tìm kiếm trên tất cả các trang web ngày hôm nay, có rất nhiều cách để làm điều đó bằng cách thêm mã vào tờ php, nhưng tôi không chắc chắn những gì tôi đang làm.Làm thế nào để thêm một chú thích hình ảnh nổi bật trong Wordpress

Tôi đã thêm mã như vậy vào mã functions.php, nhưng mọi thứ đều ghép hình.

Tôi đang giữ ngón tay của mình vượt qua, ai đó sẽ có thể giúp tôi bằng cách nhập cho tôi thông qua những việc cần làm.

Cảm ơn bạn trước sự giúp đỡ của bạn.

Kind coi

John

+0

Bạn có ý nghĩa gì với "hình ảnh nổi bật"? Bạn có nghĩa là bạn muốn một số hình ảnh có chú thích và những hình ảnh khác không có chú thích? Giải thích trong ngữ cảnh nào bạn muốn hiển thị hình ảnh, chú thích, v.v. – barakadam

+1

Hình ảnh nổi bật có vị trí tải lên riêng cho mỗi bài đăng và trang và được gọi là "Ảnh nổi bật". Vì vậy, tôi sẽ giả định đó là những gì ông đang nói về. Một tìm kiếm nhanh chóng của Google cung cấp một giải pháp đơn giản, tôi sẽ đăng nó dưới đây. – AndyWarren

Trả lời

9

Trước tiên, bạn sẽ cần phải thả các đoạn mã sau vào file functions.php của bạn:

function the_post_thumbnail_caption() { 
    global $post; 

    $thumbnail_id = get_post_thumbnail_id($post->ID); 
    $thumbnail_image = get_posts(array('p' => $thumbnail_id, 'post_type' => 'attachment')); 

    if ($thumbnail_image && isset($thumbnail_image[0])) { 
    echo '<span>'.$thumbnail_image[0]->post_excerpt.'</span>'; 
    } 
} 

Dán nó ngay trước thẻ đóng PHP trong đó tệp, nếu không có thẻ PHP đóng thì hãy đảm bảo không có dòng trống bên dưới mã bạn dán vì điều đó có thể gây ra sự cố.

Sau đó, nơi bạn muốn chú thích sẽ được hiển thị, bạn sẽ cần phải gọi nó với điều này:

<?php the_post_thumbnail_caption(); ?>

Nếu bạn không chắc chắn nơi để đặt cuộc gọi trong file mẫu của bạn , bạn sẽ cần phải tìm nơi <?php the_post_thumbnail(); ?> đang được gọi. Chỉ cần tìm dòng đó trong tệp mẫu của bạn và đặt lệnh gọi hàm gần nó, nơi bạn muốn chú thích hiển thị ở đó. Hàm kết thúc tự động chú thích trong thẻ span để bạn có thể nhắm mục tiêu nó bằng CSS, nhưng bạn cũng có thể bọc cuộc gọi hàm trong bất kỳ thẻ nào bạn muốn.

Vì vậy, ví dụ, nếu tập tin mẫu của bạn đang kêu gọi các hình ảnh đặc trưng với điều này hoặc cái gì đó rất tương tự:

<?php 
    if (has_post_thumbnail()) { 
     the_post_thumbnail(); 
} ?> 

Bạn muốn thêm các cuộc gọi chú thích để nó như thế này:

<?php 
    if (has_post_thumbnail()) { 
     the_post_thumbnail(); 
} ?> 
<?php the_post_thumbnail_caption(); ?> 

Hãy cho tôi biết nếu bạn cần làm rõ thêm.

+0

Xin chào Andy, Cảm ơn bạn đã dành thời gian giúp tôi. Tôi đang sử dụng một trình tạo chủ đề rất tốt được gọi là Ultimatum, vui lòng xem liên kết sau. http://ultimatumtheme.com/ Tôi đã xem xét tất cả các thư mục sáng nay, nhưng không thể tìm thấy các tập tin php bạn đề cập đến. Vì vậy, tôi đã sao chép bài viết của bạn và ghi nhận bạn và đăng nó lên diễn đàn Ultimatum, hy vọng ai đó sẽ cho tôi biết tôi cần mở tập tin nào trong notepad ++ và thêm vào. – TLCJohn

+0

Không có vấn đề, hy vọng nó sẽ giúp. Một khi bạn nhận được nó đã tìm ra, xin vui lòng chấp nhận câu trả lời của tôi ở đây nếu nó là những gì bạn đang tìm kiếm. Tôi đã đi đến liên kết bạn cung cấp và sẽ tải xuống một bản sao để tôi có thể tìm thấy các tập tin chính xác cho bạn, nhưng nó là một công cụ khá tốn kém. Nó sẽ xuất hiện rằng một số loại của nó kết thúc trước kéo và thả xây dựng? Vì vậy, nó có thể có nhiều mã và các tập tin mà một chủ đề WordPress điển hình. – AndyWarren

-1
the_post_thumbnail();     // without parameter -> Thumbnail 

the_post_thumbnail('thumbnail');  // Thumbnail (default 150px x 150px max) 
the_post_thumbnail('medium');   // Medium resolution (default 300px x 300px max) 
the_post_thumbnail('large');   // Large resolution (default 640px x 640px max) 
the_post_thumbnail('full');   // Original image resolution (unmodified) 

the_post_thumbnail(array(100,100)); // Other resolutions 
+2

Bạn nên xóa câu trả lời này. Nó hoàn toàn không chính xác, và bạn có thể sẽ bị downvoted. –

0

Tôi biết đây là câu hỏi cũ, nhưng tôi muốn cung cấp một giải pháp khác mà người khác thích, nếu bạn muốn xử lý dữ liệu đã có sẵn (ít cơ sở dữ liệu hơn) trong khi sử dụng các trường đã có sẵn trong WordPress .

Vì đầu ra của get_the_post_thumbnail() trả về toàn bộ thẻ img dưới dạng chuỗi có thẻ alt được điền sẵn từ trường chú thích, bạn có thể chỉ cần trích xuất thẻ alt của thẻ hình ảnh bằng cách sử dụng trình phân tích cú pháp xml hoặc regex.

Tôi đã làm điều này:

<?php 
    if ($featured = get_the_post_thumbnail(get_the_ID())): 

     echo $featured; 
     preg_match('/alt="(.*)"/i', $featured, $caption); 

     if ($caption) { 
      echo wpautop(array_pop($caption)); 
     } 
    endif; 
    ?> 

Nếu bạn muốn nó trong một chức năng giống như câu trả lời ban đầu được chấp nhận, bạn vượt qua các thẻ img trực tiếp đến chức năng của bạn:

function get_the_post_thumbnail_caption($img_tag) { 
     preg_match('/alt="(.*)"/i', $img_tag, $caption); 
     return array_pop($caption); 
    } 

Và trong mẫu:

$img = get_the_post_thumbnail(get_the_ID()); // or any id 
    echo wpautop(get_the_post_thumbnail_caption($img)); 

Lưu ý rằng nếu bạn điền trường 'văn bản thay thế', trường sẽ ghi đè dữ liệu trường chú thích khi xuất ra thẻ img. Bạn có thể ghi đè hành vi đó bằng các bộ lọc nếu cần.

+0

Một điều nữa: bạn có thể mở rộng regex để bao gồm các thẻ khác bằng cách sử dụng hàm 'preg_match_all' và một mẫu như '/(alt|title|src)="(.*)"/i' – Scorpius

Các vấn đề liên quan