Я хочу разрешить запятые в именах тегов? Например, "hello, world"
или "portland, or"
Wordpress продолжает их разделять. Я могу сделать это на странице категорий:
изображение http://img839.imageshack.us/img839/6869/picturepp.png
И это хорошо видно. Но все, что добавлено из боковой панели сообщений, не отображается здесь нормально:
изображение http://img52.imageshack.us/img52/4950/picture1oax.png
Здесь есть некоторые обсуждения: http://core.trac.wordpress.org/ticket/14691, но похоже, что это не может быть решено, по крайней мере, на некоторое время.
А пока я ищу более простое решение, чем добавление категорий со страницы категорий.
Я пробовал искать плагины и не нашел ничего, что могло бы помочь. Есть несколько, которые имеют дело с заменой запятых другими символами при отображении списка категорий или тегов, но я не вижу никаких плагинов, которые позволяют пользователю заменять разделитель по умолчанию.
Мне все равно, придется ли мне исправлять ядро самому. В идеале я мог бы написать плагин, но после просмотра некоторого кода я не могу понять, где это обрабатывается.
У кого-нибудь есть решение или советы о том, какие функции и javascript нужно начинать взламывать? Я не уверен, где начать искать в коде.
Ответы:
Нет необходимости взламывать ядро - благодаря: HOOKS.
Крючки позволяют исправить проблему с помощью хорошей комбинации
Вот код:
Может быть, некоторые дополнительные подробности в моем блоге на эту тему также помогут ... http://blog.foobored.com/all/wordpress-tags-with-commas/
Привет, Анди
источник
_x( ',', 'tag delimiter' )
чтобы поймать настоящий разделитель.Можно и очень легко сохранять теги с запятыми программно.
При вызове
wp_set_post_terms( $post_id, $terms, $taxonomy )
, если вы укажете строку, она будет взорвана в массив. Если вы предоставите свой$terms
массив, каждый элемент массива будет представлен как собственный термин, без разделения на несколько терминов.Оба,
wp_insert_post
а затемwp_update_post
использовать,wp_set_post_terms
когда$arg
tax_input
установлен.Лучший способ создания терминов на лету с помощью пользовательского интерфейса WordPress Dashboard может потребовать создания собственного мета-блока, в котором любая строка, включая запятые, будет представлена как один термин. Некоторые плагины, такие как ACF Pro, делают это по умолчанию, когда вы создаете настраиваемое поле для сохранения таксономии и выбираете также загружать и назначать термины при сохранении.
Даже при сохранении с запятой каждая часть этих терминов с запятыми может по-прежнему отображаться как отдельные элементы при редактировании сообщения. В этом случае может быть лучше отключить пользовательский интерфейс по умолчанию и использовать пользовательские мета-блоки. Это можно сделать с помощью параметров экрана при редактировании типа сообщения. Пользовательские таксономии также могут быть скрыты в разделе быстрого редактирования при регистрации.
источник
add_filter( 'pre_tax_input', function( $tax_input ) { return (array) $tax_input; } );
тем не менее, это позволит вам представить только один термин за раз.Вы можете использовать фильтр.
Например, если вы хотите добавить запятую после каждого тега в облаке тегов, вы можете поместить следующее в ваши functions.php
источник
Вот ваше решение укладки. Обратите внимание на строку 2614:
Внутри wp-includes / taxonomy.php . Удачи в взломе кода. нет никакого крючка. это жестко запрограммировано ... Извините. Я думаю, что взлом кода - ваш единственный вариант на данный момент.
источник
Запятые в именах тегов не будут работать должным образом, потому что при добавлении тега к сообщению WordPress будет анализировать его как несколько ключевых слов с разрывом запятой.
Простое исправление:
Используйте
,
( HTML-код для запятой ) вместо обычной запятой.Потом:
,
будет отображаться как хорошая запятая внутри постов, тегов заголовков страниц и множества других мест.,
внутри интерфейса администратора при вводе имени тега.К вашему сведению, используя сущность HTML,
,
не работает.источник