Удаление циклических ссылок из меню и списка рубрик
Очень похожий код.
Как превратить эти две функции в одну?
// Удаление из меню ссылки на текущую страницу function nav_menu_no_link($no_link) { $gg_mk = '!<li(.*?)class="(.*?)current_page_item(.*?)"><a(.*?)>(.*?)!si'; $dd_mk = '<li$1class="\\2current_page_item\\3">$5'; return preg_replace($gg_mk, $dd_mk, $no_link ); } add_filter('wp_nav_menu', 'nav_menu_no_link'); // Удаление из списка рубрик ссылки на текущую страницу function list_categories_no_link($no_link) { $gg_mk = '!<li(.*?)class="(.*?)current-cat(.*?)"><a(.*?)>(.*?)!si'; $dd_mk = '<li$1class="\\2current-cat\\3">$5'; return preg_replace($gg_mk, $dd_mk, $no_link ); } add_filter( 'wp_list_categories', 'list_categories_no_link');
1 Ответ(ы)
Если честно не понятен в чем вопрос(или для чего это)? В каком случае у вас не получается убрать ссылку на текущею страницу?

Всё работает хорошо.
Моя цель — сократить код.

Тогда никак. События же разные(wp_list_categories, wp_nav_menu )


Можно, но разве это будет оптимизацией кода? По моему нет. Лучше разбивать все на функции, а не вставлять костыли if else. Объеденив вы сделаете код хуже.