Intereting Posts
Автоматическая сортировка сообщений по настраиваемому полю Загружать одну и ту же боковую панель несколько раз Как добавить «Проверить все» на страницу «Редактировать почту» в WP? Как я могу использовать order_by для заказа двумя мета-ключами без исключения сообщений, которые не имеют эти ключи инициализированы? Отображение скрытых подменю при загрузке страницы – Двадцать пятая тема Вызов функции undefined _deprecated_file () в /var/www/wp-includes/rss-functions.php в строке 8 Нужна помощь в восстановлении моего блога WordPress Потеря активного состояния в меню Создание виджета Multisite Dashboard сохранение данных меню выпадающего меню в пользовательском типе сообщений Перенаправить весь сайт на одну страницу Вход AJAX без плагина не работает. при добавлении действия в функцию.php Как перебирать определенные значения полей Различные цветовые схемы для разных сайтов многоузлового Показать теги пользовательского типа сообщения за пределами цикла

WordPress вставляет сообщения программно через URL-адрес

Мне нужно вставлять сообщения программно в WordPress. Я хочу, чтобы я мог публиковать сообщения через URL-адрес. Что-то вроде www.mypage.com/insertnewpost.php?title=blah&content=blahblahblah&category=1,2,3

Следующий код работает только в том случае, если я использую его в файле functions.php тем.

include '../../../wp-includes/post.php'; global $user_ID; $new_post = array( 'post_title' => 'My New Post', 'post_content' => 'Lorem ipsum dolor sit amet...', 'post_status' => 'publish', 'post_date' => date('Ymd H:i:s'), 'post_author' => $user_ID, 'post_type' => 'post', 'post_category' => array(0) ); $post_id = wp_insert_post($new_post); 

Однако, когда я пытаюсь создать новую страницу, например insertnewposts.php, и использовать приведенный выше код, я получаю такие ошибки, как Fatal error: Call to undefined function add_action () в Z: \ www \ wordpress \ wp-includes \ post.php on line 144

Пожалуйста помоги.

Наконец-то я получил ответ на эту проблему.

Чтобы этот код работал:

 global $user_ID; $new_post = array( 'post_title' => 'My New Post', 'post_content' => 'Lorem ipsum dolor sit amet...', 'post_status' => 'publish', 'post_date' => date('Ymd H:i:s'), 'post_author' => $user_ID, 'post_type' => 'post', 'post_category' => array(0) ); $post_id = wp_insert_post($new_post); 

мы должны убедиться, что bootstrap WordPress запущен … Загрузочная буфера WordPress гарантирует, что в память была загружена вся конфигурация wordpress. Сюда входят все основные функции и т. Д.

Возвращаясь к исходной проблеме «вставки сообщений программно», нам нужно вызвать wp_insert_post () в соответствующем месте после запуска wp-бутстрапа.

Для этого создайте новый файл php, например http://www.yourdomain.com/wpinstalldir/autoposts.php

 <?php /** * Writes new posts into wordpress programatically * * @package WordPress */ /** Make sure that the WordPress bootstrap has run before continuing. */ require(dirname(__FILE__) . '/wp-load.php'); global $user_ID; $new_post = array( 'post_title' => 'My New Post', 'post_content' => 'Lorem ipsum dolor sit amet...', 'post_status' => 'publish', 'post_date' => date('Ymd H:i:s'), 'post_author' => $user_ID, 'post_type' => 'post', 'post_category' => array(0) ); $post_id = wp_insert_post($new_post); ?> 

Теперь, когда вы выполните этот скрипт на http://www.yourdomain.com/wpinstalldir/autoposts.php, ваш пост будет создан. Легко и просто!

Просто добавьте строку require(dirname(__FILE__) . '/wp-load.php'); все изменилось.

Надеюсь, что ответ на эту ссылку полезен.

https://stackoverflow.com/questions/3947979/fatal-error-call-to-undefined-function-add-action/3952058#3952058

Убедитесь, что общие функции доступны на вашем Z:\www\wordpress\wp-includes\post.php

Просто добавьте строку require(dirname(__FILE__) . '/wp-load.php'); все изменилось.

Поэтому, когда вы хотите написать сообщение для программирования в WordPress, выполните следующие действия:

 error_reporting(E_ALL); ini_set("display_errors", 1); set_time_limit(0); require(dirname(__FILE__) . '/wp-load.php'); // Create post object $my_post = array( 'post_title' => wp_strip_all_tags( 'test' ), 'post_content' => 'hi boy', 'post_status' => 'publish', 'post_author' => 1 ); $post_id = wp_insert_post( $my_post, $wp_error ); if ($wp_error==false) echo $post_id ; else echo 'Not set'; echo 'Ended';