Программное создание страницы с использованием $wpdb и получение ошибки 404
РЕДАКТИРОВАТЬ: Оказывается, у меня была проблема с постоянной ссылкой, которая вызывала ошибку 404.
Оригинальная публикация ниже:
Я создаю страницу программно, используя $wpdb->вставить(), и полученная страница возвращает ошибку 404.
Несколько вещей, которые следует отметить
- Я использую объект $wpdb для создания страницы, потому что я создаю ее на отдельном веб-сайте WordPress, поэтому функция wp_insert_post() не работает, потому что она вставит сообщение на веб-сайт, который я создаю звонок от. В основном у меня есть сеть веб-сайтов, и я создаю пост на одном сайте с другого сайта.
- Я создаю пользовательское значение post_name (slug) для страницы.
Итак, когда я добавляю страницу программно, все в базе данных выглядит так, как если бы она была добавлена через административную область WordPress. Я даже могу зайти в админ-зону WordPress этого сайта и отредактировать сообщение. Однако, если я перейду к просмотру страницы, она выдаст 404. Теперь, если я "обновлю" сообщение из Админка WordPress, 404 уходит.
Если я создам сообщение программно и создам его из области администрирования WordPress, а затем посмотрю на столбцы базы данных, они будут иметь одинаковые значения (или кажутся такими). Почему один будет работать, а другой - нет? Также я использую постоянные ссылки ( ничего пользовательского, просто один из этих предопределенных вариантов ).
Это вызов вставки wpdb, который я использую...
$post = array(
'post_author' => 1,
'post_date' => date('Y-m-d H:i:s'),
'post_date_gmt' => date('Y-m-d H:i:s'),
'post_content' => '',
'post_title' => 'My Page',
'post_name' => 'my-page',
'post_excerpt' => '',
'post_status' => 'publish',
'comment_status' => 'open',
'ping_status' => 'open',
'post_modified' => date('Y-m-d H:i:s'),
'post_modified_gmt' => date('Y-m-d H:i:s'),
'post_parent' => 0,
'post_type' => 'page',
'comment_count' => 0
);
$wpdb->insert(
'wp_posts',
$post,
array( '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' );
);
1 answers
Ошибка постоянной ссылки
Я думал, что использую базовую постоянную ссылку, но забыл, что использовал пользовательскую структуру постоянных ссылок на этом конкретном веб-сайте.
Пользовательская постоянная ссылка, которую я использовал, была %postname%
.
Я переключил его на опцию месяц и имя, и теперь все работает. Извините за фальшивый вопрос.