2016-04-29 30 views
0

我需要从我的页面上的图像中删除链接,但只能删除特定网页上的所有链接,或删除网站上的所有链接,除少数页面标识或页面蛞蝓。删除图片<a>来自特定页面ID或页面slu in的链接

我有删除链接的代码,但我不能添加到例外:

add_filter('the_content', 'attachment_image_link_remove_filter'); 

function attachment_image_link_remove_filter($content) { 
    $content = 
     preg_replace(
      array('{<a(.*?)(wp-att|wp-content\/uploads)[^>]*><img}', 
       '{ wp-image-[0-9]*" /></a>}'), 
      array('<img','" />'), 
      $content 
     ); 
    return $content; 
} 

回答

0

你必须使用WordPress的条件函数is_page()

add_filter('the_content', 'attachment_image_link_remove_filter'); 
function attachment_image_link_remove_filter($content) { 
    // Set your exception pages in here 
    if(!is_page(array(42, 48, 55))) { 
     $content = preg_replace( 
      array('{<a(.*?)(wp-att|wp-content\/uploads)[^>]*><img}', 
       '{ wp-image-[0-9]*" /></a>}'), 
      array('<img','" />'), 
      $content 
     ); 
     return $content; 
    } 
} 

您可以使用页面ID或页面slu like如"contact-us" ...

----(更新后添加缺失)if(!is_page(array(42, 48, 55))) {)----

+0

谢谢,但这个例子不适用于我,我有一个错误,当我把它粘贴到我的functions.php,你能检查代码? – TomaszKub

+0

好吧,我解决了这个问题: add_filter('the_content','attachment_image_link_remove_filter'); 功能attachment_image_link_remove_filter($内容){// 设置你的例外页,这里 如果(!is_page(阵列(42,48,55))){$ 内容=的preg_replace( 阵列(“{] *>} '), 阵列(' “), $内容 \t \t); } return $ content; } – TomaszKub

0

更一般比的ID mentioned in LoicTheAztec's answer是例如。自定义(元)字段。

function bw_content($content) 
{ 
    if (get_post_meta(get_the_ID(), 'bw_remove_image_links', true) == 1) { 
     $content = preg_replace(array(
      '{<a(.*?)(wp-att|wp-content\/uploads)[^>]*><img}', 
      '{ wp-image-[0-9]*" /></a>}' 
     ), array(
      '<img', 
      '" />' 
     ), $content); 
    } 
    return $content; 
} 
add_filter('the_content', 'bw_content');