2016-04-29 6 views
0

Мне нужно удалить ссылки с изображений на моей странице, но только на специальных страницах или удалить все ссылки по всему сайту, за исключением нескольких идентификаторов страницы или страницы слизни.Удаление изображения <a> ссылка с конкретных страниц ID или страница slug в wordpress

У меня есть код для удаления ссылок, но я не могу добавить к исключениям:

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; 
    } 
} 

Вы можете использовать страницу Идентификаторы или страницы, такие как "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 ( массив ('{<а (. *) (сор-Att | сор-контент \/загрузки) [^>] *>} '), массив (' «), $ содержание \t \t); } return $ content; } – TomaszKub

0

Более общие, чем идентификаторы 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'); 

 Смежные вопросы

  • Нет связанных вопросов^_^