Задача. На сайте WordPress используется плагин «NextScripts Social Networks Auto-Poster» для автоматического постинга статей в социальные сети. В настройках шаблона публикации можно задать чтобы рубрики и теги постов публиковались хештегами, например, #огурцы #помидоры и т.д. Появилась необходимость выводить хештег пользовательской таксономии (Пример №1), но такой функции плагином не предусмотрено.
Решение. Каких-то хуков не нашел, но получилось решить добавив небольшие куски кода в сам плагин. Изменить нужно будет всего три файла плагина: /inc/nxs_functions.php
, /inc/nxs_functions_wp.php
и /inc/nxs_functions_adv.php
. Делаем по аналогии с категориями и метками постов — Код #1, где добавляем обработку пользовательской таксономии ‘mytaxonomy’.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# /inc/nxs_functions.php - стр. 429 if (preg_match('/%HMYTAXONOMY%/', $msg)) { $tags = nxs_doProcessTags($message['hmytaxonomy']); $msg = str_ireplace("%HMYTAXONOMY%", $tags['hmytaxonomy'], $msg); } # /inc/nxs_functions_wp.php - стр. 361 , <span class="nxs_hili">%HMYTAXONOMY%</span> - Вставляет кастомную таксономию Моя таксономия записи в виде hashtags # /inc/nxs_functions_adv.php - стр. 247 if (stripos($msg, '%HMYTAXONOMY%')!==false) { $t = wp_get_object_terms($postID, 'mytaxonomy'); if ( empty($t) || is_wp_error($t) || !is_array($t) ) $t = ''; $tggs = array(); foreach ($t as $tagA) { $tg = trim(str_replace(' ', $htS, nxs_clean_string(trim(nxs_ucwords(str_ireplace('&','',str_ireplace('&','',str_ireplace('-;','',$tagA->name)))))))); if (!in_array(strtolower($tg), $tagsExclFrmHT)) $tggs[] = '#'.$tg; } $tags = implode($htSep,$tggs); $msg = str_ireplace("%HMYTAXONOMY%", $tags, $msg); } |