Как создать URL в столбце guid в таблице wp_posts? - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь добавить новый пост на сайт WordPress. Я использую запрос прямой вставки в базу данных MySQL для столбца wp_posts. Проблема в том, что столбец guid пуст, для других постов в нем есть URL. Как я могу сгенерировать URL-адрес столбца guid для новых записей с помощью запроса?

Я пытался использовать uuid (), но он создает идентификатор, а не URL.

Ответы [ 3 ]

1 голос
/ 02 октября 2019

Этот столбец, несмотря на его название, не содержит направляющих в смысле Пола Лича / RFC4122 . Он содержит уникальные идентификаторы, похожие на URL-адреса. Как правило, они связаны с какой-то постоянной ссылкой. Но вам не обязательно заполнять этот столбец.

Если вы будете создавать посты / страницы / медиа / и т. Д. С помощью программы, а не в интерактивном режиме, вы действительно должны, как минимум, понимать wp_insert_post () в WordPress. функция. Вы можете прочитать исходный код в части php любой установки WordPress или здесь .

Большинство людей, которым нужно вставить посты, делают это с помощью плагина.

1 голос
/ 02 октября 2019

Это не очень хорошая практика. Wordpress имеет функции для создания / обновления сообщений, которые позаботятся об этом за вас, не нужно заново изобретать колесо.

Прочтите о функции wp_insert_post (). Вы просто готовите содержимое своего поста и передаете его в функцию.

Таким образом, WordPress дезинфицирует и проверяет данные, чтобы избежать ошибок или конфликтующих дубликатов.

Кроме того, естьобычно подпрограммы (из плагинов и тем) запускаются каждый раз при создании сообщения. Если вы создаете непосредственно в БД, эти подпрограммы не запускаются.

0 голосов
/ 02 октября 2019

Не рекомендуется вставлять данные через запрос на вставку в таблицу сообщений WordPress для создания новых сообщений.

Используйте функцию ниже для вставки данных в WordPress, она автоматически создаст guid и остальные необходимые столбцы.

                $post_title='Sample wordpress post';
                $post_content='Sample wordpress post';

                $my_post = array(
                'post_title' => wp_strip_all_tags($post_title),
                'post_content' => $post_content,
                'post_status' => 'publish',
                'post_category' => array(a)
            );

            // Create a new post
            $post_id = wp_insert_post($my_post);

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...