Intereting Posts
изображение загрузки роли Выход в навигационный навигатор в выпадающем меню Я хочу создать сайт Weebly и показать его как статические страницы на сайте WordPress Возможно ли заблокировать пользователей подписчиков на смену пароля? вызывающая функция во внешнем js-файле add_post_meta добавляет мета к еще одному другому сообщению Управление URL-адресами Как загрузить php-файл для определенной страницы в admin? Размер выбранного изображения ограничен – как я могу устранить неполадки и решить проблему? Должен ли я использовать usermeta или таксономию (или даже обычную таксономию)? Пустое пространство отображается как знак вопроса Продукт с изменением по умолчанию – фотография WooCommerce Как я могу получить slug для пользовательского типа сообщения через имя? Удаление определенного продукта из магазина в woocommerce Может ли кто-нибудь объяснить функцию третьего параметра «add_rewrite_tag»,

Название WordPress как ключевые слова (теги) с исключенными стоп-словами

Как изменить нормальное предложение WordPress title на список «tag like» с исключенными словами «stop words».

Пример:

«Это одно название тестового сообщения о чем-то».

Для того, чтобы:

«один, тест, должность, название, что-то»

Это моя функция, которая исключает слова черного списка (слова остановки) и слова с менее чем 3 символами (как правило, также останавливают слова).

<?php // Post title as keywords, excluded stop words function title_as_keywords( $word ) { $blacklist = array('this', 'about', 'that', 'them'); // Excluded words ... if ( !in_array( $word, $blacklist ) && strlen( $word ) > 3 ) { //Exclude words with less than 4 characters $word_with_comma = '' .$word. ', '; // Separate words with comma return $word_with_comma; } else { return ''; } // Return nothing for black list words or words with less than 4 characters } ?> <?php $title = get_the_title( $post->post_parent ); // Get title $parts = explode( ' ', $title ); echo title_as_keywords( $parts[0] ); echo title_as_keywords( $parts[1] ); echo title_as_keywords( $parts[2] ); echo title_as_keywords( $parts[3] ); //... ?> 

Проблемы: Это работает нормально, но для этого требуется тонкая настройка. Это даст следующий результат:

«тест, почта, название, что-то»,

Задача 1:

Я хотел бы отобразить последнее слово без «,» в конце.

Проблема 2:

Он исключает слово «один» (потому что он имеет длину 3 символа), я могу установить его, чтобы он включал слова с 3 символами, но мне придется создать длинный черный список, чтобы включить 3 символа остановки слов (кто, она, она , его ее…).

Solutions Collecting From Web of "Название WordPress как ключевые слова (теги) с исключенными стоп-словами"

Вот ваша обновленная функция, решая ваши 2 проблемы:

 // Post title as keywords, excluded stop words function title_as_keywords( $word ) { $blacklist = array('this', 'about', 'that', 'them'); // Excluded words ... $whitelist = array('one', 'man', 'boy'/*etc..*/); // Whitelisted words ... if ( (!in_array( $word, $blacklist ) && strlen( $word ) > 3 ) || in_array($word, $whitelist)) { //Exclude words with less than 4 characters $word_with_comma = '' .$word. ', '; // Separate words with comma return $word_with_comma; } else { return ''; } // Return nothing for black list words or words with less than 4 characters } $title = get_the_title( $post->post_parent ); // Get title $parts = explode( ' ', $title ); $str = ''; foreach ($parts as $word) { $str.= title_as_keywords($word); } $str = substr($str, 0,-2); echo $str; 

Надеюсь, это поможет 🙂