Постинг в вордпресс из скриптов.

Или зачем изобретать велосипед, если есть самолет.

Появилась нужда добавлять посты в вордпресс из сторонних скриптов. Недолго думая, изобрел велосипед в стиле INSERT INTO….
Все хорошо, но только при такой подходе куча полезных штук типа тегов, автокросспостинга статей не работает.
Фигня думаю, щас посморим какие вп запросы генерит, создадим такие же и все будет ок. Врубаю полное логирование мускула (на этом вдс ~200 площадок), делаю пару пробных постов. За пару минут пока постил лог стал весить пару метров )) что естесственно меня не остановило, отгрепал по нужным словам, стал формировать запросы. В итоге получился такой огромный костыль, что даже смотреть страшно.
А все делается проще и изящней:

#!/usr/bin/php
require_once("_WP_PATH_/wp-config.php");
// Create post object
 $my_post = array();
 $my_post['post_title'] = "My post2";
 $my_post['post_content'] = "This is my post.";
 $my_post['post_status'] = "publish";
 $my_post['post_author'] = "1";
 $my_post['tags_input'] = "tag555, tag444, tag777";
// Insert the post into the database
 wp_insert_post( $my_post );
?>

Дополнительные параметры для данной функции:

$post = array(
  'comment_status' => [ 'closed' | 'open' ] // 'closed' means no comments.
  'ID' => [ <post id> ] //Are you updating an existing post?
  'menu_order' => [ <order> ] //sets the order should it appear in the tabs.
  'page_template => [ <template file> ] //Sets the template for the page.
  'ping_status' => [ ? ] //Ping status?
  'pinged' => [ ? ] //?
  'post_author' => [ <user ID> ] //The user ID number of the author.
  'post_category => [ array(<category id>, <...>) ] //Add some categories.
  'post_content' => [ <the text of the post> ] //The full text of the post.
  'post_date' => [ Y-m-d H:i:s ] //The time post was made.
  'post_date_gmt' => [ Y-m-d H:i:s ] //The time post was made, in GMT.
  'post_excerpt' => [ <an excerpt> ] //For all your post excerpt needs.
  'post_parent' => [ <post ID> ] //Sets the parent of the new post.
  'post_password' => [ ? ] //password for post?
  'post_status' => [ 'draft' | 'publish' | 'pending' ] //Set the status of the new post.
  'post_title' => [ <the title> ] //The title of your post.
  'post_type' => [ 'post' | 'page' ] //Sometimes you want to post a page.
  'tags_input' => [ '<tag>, <tag>, <...>' ] //For tags.
  'to_ping' => [ ? ] //?
);

Ссылки на маны, которые следует читать до того, как что-либо делаешь:
wp_insert_post function reference
записи с меткой этой функции
пример использования

P.S. если скрипт, который подключает эту функцию, выкидывает PHP Fatal error:  Call to a member function set_prefix() on a non-object in /home///// то надо выносить

require_once("_WP_PATH_/wp-config.php");

в самый верх. Если настроен кросспостинг, то постите с задержкой

0.00 avg. rating (0% score) - 0 votes

10 комментариев

  • Пригадиццо када линя выучу. Спасибо Саша!

  • Сплоги делаешь?
    Можно еще воспользоваться этим: http://www.charnad.com/wp-poster/
    Про то что можно логировать мускль  знал, но не знал что делается одной строчкой.

    • Ad1ce, я много чем занимаюсь 😉 Вп-постер я знал, там через xm-rpc, это снижает скорость сильно. У меня свои скрипты для этого дела )

  • Подскажи каким вдс пользуешься.

  • Как -то чрезвычайно дорого. Даже у firstvds дешевле. Я бы хотел 1000 МГ, 10 айпи, заплатить готов 1000 р, но похоже это только мечты.
    Хотя вот интересное решение http://vpsland.com/linuxplans.html
    Буду думать. Возможно возьму хостинг на некоторые сайты, а другие оставить на моем серваке.

    • в районе 40$ — 50$ будет стоить самый дорогой тариф если через меня там взять. У фествпс беру периодически серваки под нужды некоторых скриптом, там фря стоит, но как-то я недоверяю сервакам по цене дешевле хостинга.

  • Спасибо за подсказку с set_prefix!

  • Хм, а в какой кодировке данные кормить? Сразу в utf8 или он перекодирует автоматом? Хотя для автомата ему надо исходную кодировку говорить…

    • Киноман, вп только с утф работает

css.php