Перейти к содержимому

Реферальная программа Мегаплана


Как открывать внутренние ссылки в постах wordpress в новых вкладках

#1 Sosnovskij

Sosnovskij
  • Администратор
  • 3 886 сообщений
  • Репутация: 566
0

Отправлено 29 Январь 2015 - 10:52

Есть ли решения, которые бы позволяли открывать все внутренние ссылки в постах в новых вкладках? То есть не все линки на внутренние страницы сайта, а именно те, которые размещены в основном содержании записи. Желательно , конечно, чтобы это была какая-то строчка кода, а не плагин :)


 

 

  • 0

Не стесняйтесь ставить оценки темам :) Правила форума. Мой блог http://sosnovskij.ru/.



#2 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 29 Январь 2015 - 12:27

Примерно так можно попробовать (код для файла functions.php):

add_filter( 'the_content', 'wfm_add_target' );
function wfm_add_target($content){
	if( !is_single() ) return $content;
	return preg_replace("#<a([^>]+)>(.+?)</a>#", "<a$1 target='_blank'>$2</a>", $content);
}

  • 3


#3 Sosnovskij

Sosnovskij
    Topic Starter
  • Администратор
  • 3 886 сообщений
  • Репутация: 566

Отправлено 29 Январь 2015 - 12:43

matroskin8, супер! Работает. Спасибо :)


  • 0

Не стесняйтесь ставить оценки темам :) Правила форума. Мой блог http://sosnovskij.ru/.



#4 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 29 Январь 2015 - 13:58

Пожалуйста :)


  • 0


#5 Sosnovskij

Sosnovskij
    Topic Starter
  • Администратор
  • 3 886 сообщений
  • Репутация: 566

Отправлено 04 Февраль 2015 - 10:08

@matroskin8, если создавать якоря вручную на странице domen.ru/statya-1/#punkt-1 , то при клике на эти ссылки они открываются в новой вкладке, а по логике должны перекидывать на нужную место существующей страницы. Можно обойти этот момент? :) 


  • 0

Не стесняйтесь ставить оценки темам :) Правила форума. Мой блог http://sosnovskij.ru/.



#6 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 04 Февраль 2015 - 10:39

Sosnovskij, без проблем. Немного изменим регулярное выражение:

return preg_replace("#<a([^>\#]+)>(.+?)</a>#", "<a$1 target='_blank'>$2</a>", $content);

Остальное без изменений.


  • 1


#7 Sosnovskij

Sosnovskij
    Topic Starter
  • Администратор
  • 3 886 сообщений
  • Репутация: 566

Отправлено 04 Февраль 2015 - 15:09

matroskin8, здОрово. Спасибо!


  • 0

Не стесняйтесь ставить оценки темам :) Правила форума. Мой блог http://sosnovskij.ru/.



#8 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 04 Февраль 2015 - 16:10

Пожалуйста)


  • 0


robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru