Intereting Posts
Сравнение данных переходных процессов с использованием значения мета-поля Автоматическое заполнение иерархической таксономии из настраиваемого поля Добавить нестандартный размер изображения не работает Как перенаправить wp-admin / index.php на пользовательский тип сообщения? Добавить плагин перед основным контейнером Как добавить класс в ссылку на термин? Разве это не должно быть легко ?! Пользовательский тип сообщения / пользовательская таксономия постоянная ссылка поиск одиночной meta_key с числовым массивом мета значений Создание собственных форм администратора в WordPress CMS? Хостинг WordPress в Google Apps Engine (GAE) Как подсчитать количество архивов Получение сведений о загруженном изображении Таблица WPDB не существует Как создавать столбцы со страницей на WordPress и CPTUI? Как изменить структуру URL-адресов для постраничных страниц?

Как обрабатывать shortcode только после публикации и обновления

Ниже приведен простой короткий код, поэтому в статье я могу просто связать ключевые слова, чтобы пометить таксономические страницы на моем сайте.

Поэтому, если бы я должен был использовать термин « Web Service как [taglink]Web Service[/taglink]

то приведенная ниже функция заменит пространство с помощью a - чтобы сделать Web-Service который будет моей таксономией тегов, чтобы я мог ссылаться на эту страницу.

Эта…
[taglink]Web Service[/taglink]

Становится этим …
<a href="/tag/web-service" title="Web Service tagged articles">Web Service</a>

Код

 function taglink_func($atts, $tag='') { $formattedTag = str_replace(' ', '-', $tag); $formattedTag = strtolower($formattedTag); return '<a href="/tag/' .$formattedTag. '" title="' .$tag. ' tagged articles">' .$tag. '</a>'; } add_shortcode('taglink', 'taglink_func'); 

Эта solkution работает достаточно хорошо, но для повышения производительности еще больше, я хотел бы запустить эту функцию, когда я создаю новую статью, а когда я редактирую и статью, так что только при сохранении статьи я хотел бы запустить эту функцию на любом теги в статье, а затем замените [taglink]Web Service[/taglink] в фактической базе данных с результатом.

Поэтому вместо того, чтобы запускать это на каждом просмотре страницы, он будет запущен на странице save и просто заменит код в базе данных ссылкой на URL.

Кто-нибудь знает, как я могу это сделать?

Если вы хотите изменить контент, когда пользователь сохраняет сообщение, вы захотите подключить функцию, используя hook_post .

В рамках этой функции вы можете обрабатывать зарегистрированные короткие коды с помощью get_shortcode_regex, которые дадут вам короткие коды и атрибуты, используемые в этом сообщении.

(Тем не менее, если вы хотите обработать контент, когда пользователь сохраняет, а не когда отображается содержимое, то вам, вероятно, не нужно регистрировать короткий код для начала. Просто используйте hook_post и обработайте короткий код с помощью своего собственного регулярного выражение.)

Для этого вы можете использовать save_post и status_to_status и new_status_post_type .

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