Intereting Posts
Лучший способ создания нескольких боковых панелей Какой метод действия я должен использовать для перехвата формы при представлении? Пользовательская структура навигации с классом walker Защита от вредоносного кода в обновлениях плагина WordPress Получить текущий массив пользователей в гиперссылку Мета-запрос для пользовательской таксономии при вложении Как показать / скрыть таксономию, основанную на выборе типа публикации Получить следующую / предыдущую страницу кузена Ошибка загрузки страницы 404 при загрузке сервера Какой язык кодирования использовать? Как настроить заголовок, передав строку запроса? Быстрая настройка экрана редактирования Изменение отображаемого изображения на большом пальце мыши в одном продукте woocommerce как получить 10 лучших популярных блогов Использование DK PDF для создания динамического PDF из сообщений

Как вставить тире (-) в базу данных с помощью wpdb и new_to_publish hook?

Я сохраняю заголовки сообщений в отдельной таблице для конкретного использования. Заголовки сохраняются в базе данных при публикации публикации. код:

add_action('future_to_publish', 'send_emails_on_new_event'); function send_emails_on_new_event($post) { global $post; global $wpdb; $table_name = 'tbl_name'; $site_post_url = get_permalink(); $site_post_title = get_the_title(); $author_id = $post->post_author; $author = get_the_author_meta( 'display_name', $author_id ); $wpdb->insert( $table_name, array( 'site_post_url' => $site_post_url, 'site_post_title' => $site_post_title, 'Author' => $author ) ); } 

Вышеприведенный код вставляет данные в соответствующие поля в таблице, называемые «tbl_name», все отлично, кроме site_post_title если site_post_title имеет dash - оно автоматически преобразуется в дефис и сохраняется.

Скажем, мой титул – Dash – test – -ok?

когда я проверяю запись в таблице tbl_name это - Dash – test – -ok? - Dash – test – -ok?

TBL Почему эти две тире сохраняются?

как я могу сохранить тире как просто тире в таблице базы данных?

ОБНОВИТЬ

название номера знак # двойные кавычки "косая черта / двоеточие: сохраняется как number sign # double quotes ” slash / colon :

Когда мы вызываем get_the_title() , заголовок сообщения берется через wptexturize() через фильтр the_title :

 add_filter( 'the_title', 'wptexturize' ); 

Элементы en-dash и em-dash заменяются на

 /* translators: en dash */ $en_dash = _x( '–', 'en dash' ); /* translators: em dash */ $em_dash = _x( '—', 'em dash' ); 

Простым обходным решением для сохранения дефиса en / em при его сохранении в пользовательской таблице может быть:

 $site_post_title = str_replace( [ '–', '—' ], [ '–', '—' ], get_the_title() ); 

или просто используйте raw $post->post_title если это имеет смысл для вашей установки.