Intereting Posts
Как отображать разные подменю? Заказ списка пользователей пользователем meta RSS-канал для удаленных сообщений и комментариев Использование правила перезаписи для доступа к представлению плагина на главной странице Получить записи по автору Должен ли я запускать две разные «близкие» версии кода WordPress с той же БД не может использовать метод page_test для проверки разбивки на страницы Отображать связанные пользовательские сообщения о таксономии в боковой панели Несколько запросов и исключение повторяющихся сообщений? Создание нескольких файлов загрузки Metabox в WordPress Предоставление доступа горизонтального модуля прокрутки к редактору роли пользователя Пользовательская домашняя страница с полным сообщением только для первого Как я могу установить порядок листинга по умолчанию на странице администратора для пользовательской таксономии? (без плагинов) Создание подкатегорий через php Автоматическое создание галереи Nextgen после создания сообщения

Автоматическое связывание слов, но только одно время

Мне очень нужен фрагмент кода, который заменит простое слово гипертекстовой ссылкой, используя метод str_replace. И, к счастью, я нашел этот код ниже, но проблема в том, что он повторяет ссылку со всеми подходящими ключевыми словами, тогда как я хочу добавить ссылку только один раз и забыть другие подходящие ключевые слова.

Например, если он видит «детские стишки», замените его гипертекстовой ссылкой, но не добавляйте ссылку снова с ключевыми словами «рифмы», «рифмы» или «стихи» на одной странице. Один URL только один раз.

Я также слышал, что это возможно не возможно с str_replace, но возможно с preg_replace, что может ограничить появление замещений.

Пожалуйста помоги. Я не очень хорошо знаком с PHP или кодированием, поэтому, пожалуйста, используйте полный код, поэтому я могу просто скопировать и вставить мои функции. Вот код, который я использую:

function wp_affiliate_links($text) { $replace = array( ' nursery rhymes ' => ' <a href="http://www.nurseryrhymes.me/">nursery rhymes</a> ', ' poems ' => ' <a href="http://www.nurseryrhymes.me/">poems</a> ', ' rhymes ' => ' <a href="http://www.nurseryrhymes.me/">rhymes</a> ', ); $text = str_replace(array_keys($replace), $replace, $text); return $text; } add_filter('the_content', 'wp_affiliate_links'); add_filter('the_excerpt', 'wp_affiliate_links'); 

Не можете ли вы передать лимит числа замен в str_replace? Как это

 $text = str_replace(array_keys($replace), $replace, $text, 1); 

РЕДАКТИРОВАТЬ:

Извините, я думал о чем-то другом и пропустил это. Вы можете использовать preg_replace и установить лимит в нем. Как этот.

 function wp_affiliate_links($text){ $replace = array( '/ nursery rhymes /' => ' <a href="http://www.nurseryrhymes.me/">nursery rhymes</a> ', '/ poems /' => ' <a href="http://www.nurseryrhymes.me/">poems</a> ', '/ rhymes /' => ' <a href="http://www.nurseryrhymes.me/">rhymes</a> ', ); $text = preg_replace( array_keys($replace), $replace, $text, 1 ); return $text; } add_filter('the_content', 'wp_affiliate_links'); add_filter('the_excerpt', 'wp_affiliate_links'); 

EDIT 2:

Попробуй это.

 function wp_affiliate_links($text){ $replace = array( '/ nursery rhymes /' => ' <a href="http://www.nurseryrhymes.me/">nursery rhymes</a> ', '/ poems /' => ' <a href="http://www.nurseryrhymes.me/">poems</a> ', '/ rhymes /' => ' <a href="http://www.nurseryrhymes.me/">rhymes</a> ', ); foreach ( $replace as $key ) { $text = preg_replace( array_keys($replace), $replace, $text, 1 ); return $text; } } add_filter('the_content', 'wp_affiliate_links'); add_filter('the_excerpt', 'wp_affiliate_links');