Intereting Posts
Проблемы с открытым графиком Поддерживает ли WordPress входные данные ко всем функциям? (например, get_user_meta и insert_user_meta) Включить комментарии для сообщения, когда метаданные комментариев удалены. Confused over wp-config.php и «пользователь базы данных + пароль базы данных + имя» Подтверждение метаданных и перенаправления пользователей Сколько времени потребуется, чтобы плагин полностью загрузился в репозиторий WordPress.org? Изображения внутри заголовка сообщения WordPress – пользовательские классы навигационных элементов Создание собственных форм администратора в WordPress CMS? Изменение в медиа-библиотеке влияет на изображения в опубликованных статьях Как проверить, является ли текущая страница «личной деятельностью» -страницей в buddypress? Ограничьте автора, чтобы выбрать из медиа-библиотеки, но не загружать медиа Извлечь JSON-файл из JS trough php admin_notices после register_uninstall / deactivate_hook Можно ли поменять имена файлов в медиатеке после загрузки?

Добавить данные в the_content в базе данных (не используя фильтр)

Мой сайт требует, чтобы люди могли искать термины, которые включены в теги и категории (города и округа).

У меня возникают проблемы с ресурсами, использующие плагин «Поиск всего», это заставляет базу данных mysql блокировать и давать мне значительное замедление. Я не обвиняю плагин, я виню свой общий хостинг.

НО, мне было интересно, могу ли я вообще вообще не использовать плагин, просто добавляя теги сообщения и имена категорий в the_content в базе данных (вместо использования фильтра, который, по моему мнению, будет включать только те термины, которые они отображаются на странице) так что встроенный поиск WordPress мог бы быть удовлетворительным и найти эти термины.

Я прочитал много разных кодовых страниц и руководств, но не нашел то, что мне нужно, но я надеюсь, что кто-то может взглянуть на следующий код и дать свои мысли о том, может ли он работать (у меня нет тестового сервера на данный момент, и я не решаюсь запустить его на живом сайте!) (Обратите внимание, что этот пример включает теги только до сих пор)

function tags_in_content($post_id, $post) { $content = get_the_content(); $tags = get_tags(); $content->append('$tags'); } add_action ( 'publish_post', 'tags_in_content' ); 

Не может быть так просто?

Большое спасибо за любую помощь, которую любой может мне дать!

Solutions Collecting From Web of "Добавить данные в the_content в базе данных (не используя фильтр)"

Я бы сказал, что лучший способ сделать это – использовать действие save_post , которое запускается каждый раз, когда сообщение изменяется на экране редактирования. Для написания и чтения post_content в / из базы данных это потребует честной игры. В приведенном ниже примере я добавляю список тегов сообщений для post_content . Сложно, но это удаление и чтение фильтра внутри его собственного обратного вызова, иначе вы получите бесконечный цикл.

 add_action( 'save_post', 'my_save_post' ); function my_save_post( $post_id ) { $divider = "<!-- DIVIDER -->"; // We'll use this as a divider of actual post_content and our tag list //verify post is not a revision if ( !wp_is_post_revision( $post_id ) ) { // Remove filter to avoid infinite loop add_action( 'save_post', 'my_save_post' ); $post = get_post($post_id); $content = $post->post_content; // Strip away old tags $editor_content = array_shift(explode($divider, $content)); // Add new tag list to end of post_content $editor_content .= "\n" . $divider . "\n" .implode(", ", wp_get_post_terms($post_id, 'post_tag')); // Update post object and and database $post->post_content = $editor_content; wp_update_post($post); // Add filter again add_action( 'save_post', 'my_save_post' ); } } 

Вам, вероятно, также потребуется добавить фильтр, чтобы удалить форму списка тегов post_content прежде чем она будет отправлена ​​в текстовое поле редактора. Я думаю, что the_editor_content будет неплохо работать в этом случае. То, что вы хотите сделать, это в основном то же самое, что и первая половина вышеприведенной функции, то есть удаление всего после разделителя, но с добавлением нового списка тегов (мы не хотим, чтобы это отображалось в редакторе, не так ли?) , Это означает, что вы можете разбить это на свою собственную функцию и использовать это в обоих случаях, но я оставлю это вам.