2010-09-30 33 views
5

Tôi có một yếu tố neo như thế này:remove xung quanh hình ảnh Wordpress với bộ lọc (hoặc jquery)

<a href="/link-to-image/" rel="attachment wp-att-7076"><img src="/uploads/img.jpg" alt="" title="" width="1268" height="377" class="alignnone size-full wp-image-7076" /></a> 

(Đó là cách tiêu chuẩn của Wordpress để nhúng hình ảnh được tải lên trong một bài đăng.)

Tôi muốn loại bỏ các neo xung quanh yếu tố hình ảnh, nhưng giữ hình ảnh. Tôi chỉ muốn hình ảnh hiển thị mà không bị nhấp vào.

Điều này có thể được thực hiện bằng bộ lọc cho nội dung của bài đăng trong Wordpress hoặc sau khi trang được tải bằng javascript. Lọc trong Wordpress sẽ được ưu tiên. Tôi không có ý tưởng làm thế nào để làm một trong hai lựa chọn.

Trả lời

3

Chuyển đến thư mục chủ đề WP của bạn, chỉnh sửa "functions.php". Thêm mã như thế này:

function remove_anchor($data) 
{ 
    // the code for removing the anchor here 

    // (not sure if you need help there, too). 

    // you will work on the $data string using DOM or regex 
    // and then return it at the end 


    return $data; 
} 

// then use WP's filter/hook system like this: 
add_filter('the_content', 'remove_anchor'); 

Các add_filter có nghĩa là mỗi khi một bài được hiển thị, chức năng remove_anchor được gọi.

jQuery có lẽ là dễ dàng hơn, bạn chỉ cần xác định những hình ảnh và không làm cho họ nhấp được (điều này là chưa được kiểm tra)

$(document).ready(function() 
{ 
    $('#post a.some-class-name').click(function() 
    { 
     return false; 
    } 
}); 
+0

nhờ. Tôi sẽ xem xét phiên bản php với DOM. – reggie

+0

Bạn có nhận được phiên bản làm việc này không? Rất thích xem mã đầy đủ. Tôi chỉ cần nhập Blogger vào WordPress và có thể chuyển đổi hình ảnh bên ngoài sang các bản sao cục bộ, bằng một plugin, nhưng chúng vẫn được bao bọc trong các neo trỏ tới Blogger. Ngoài ra, chức năng này có thực sự cập nhật cơ sở dữ liệu, vì vậy nó có thể được gỡ bỏ sau khi chạy một lần không? Cảm ơn! – Zade

4

Tìm mã hữu ích here:

Cố gắng ra ngoài, nhưng gây ra mã không hợp lệ.

Mã của bạn trong ../your_theme/ functions.php sẽ trông như thế này:

function remove_anchor($content) { 
    // the code for removing the anchor here 
    $content = 
     preg_replace(
      array('{<a(.*?)(wp-att|wp-content\/uploads)[^>]*><img}', '{</a>}'), 
      array('<img',''), 
      $content 
     ); 
    return $content; 
} 

// then use WP's filter/hook system like this: 
add_filter('the_content', 'remove_anchor'); 
Các vấn đề liên quan