WordPress php автоматическое добавление

WordPress php автоматическое добавление

В решении автоматического наполнения WordPress, о чем я писал в http://blogclient.ru/zarabotok-v-sape.htm первой задачей встает добавление нового поста. Второй вопрос — это создание и выбор категории для нового поста, но этот вопрос для меня пока не решен.

Вот работающая функция на php для добавления нового поста

function AddPost($Title, $Content, $Date)  global $user_ID; $PostArr=  array( ‘post_status’ => ‘publish’, ‘post_type’ => ‘post’, ‘post_author’ => $user_ID, ‘post_content’ => $Content, ‘post_title’ => $Title,’post_date’ => gmdate(‘Y-m-d H:i:s’, $Date  + get_option(‘gmt_offset’) * 3600), ‘comment_status’ => ‘open’, ‘ping_status’ => get_option(‘default_ping_status’), ‘post_parent’ => 0, ‘to_ping’ =>  », ‘pinged’ => », ‘post_password’ => »); return  wp_insert_post($PostArr); >

Для отладки робота необходимо также иметь и функцию удаления всех постов из блога, я ее например запускаю перед очередным маневром добавления новых постов, пока что на локальном компьютере. Все отлично работает:

function DeleteAllPosts()  global $wpdb; $Posts= $wpdb->get_results(«SELECT ID FROM $wpdb->posts»);   foreach( $Posts as $Post ) wp_delete_post($Post->ID);>>

Если у кого есть какие предложения — пишите. У кого есть какие идеи об алгоритме расфасовывания постов по категориям в полностью автоматическом режиме?

Комментарии (17) на запись “Как автоматизировать добавление нового поста на php в WordPress”

Йоптить, где ты был месяц назад 🙂 Я уже дохрена действий напрямую с базой произвожу, потому что не разобрался в этой куче функций вордпресса

Напрямую с базой не кошерно: надо пропинговать урлы в посте, в соответствии со временем там пост может быть поставлен в очередь на публикацию, плюс всякие акшины из плагинов. Чтобы понять что следует вызывать надо смотреть xmlrpc.php

Хм, создал файл, запускается без ошибок, но ничего не добавляет. может в последней версии так.. ‘publish’,
’post_type’ => ‘post’,
’post_author’ => $user_ID,
’post_content’ => $Content,
’post_title’ => $Title,
‘post_date’ => $Date,
’comment_status’ => ‘open’,
’ping_status’ => get_option(’default_ping_status’),
’post_parent’ => 0,
’to_ping’ => »,
’pinged’ => »,
’post_password’ => »); return wp_insert_post($PostArr);
> AddPost(‘Заголовок’, ‘тест новости’, ‘2008-07-29 23:21:59’);
?>

чтото обрезалось, вот начало require_once(‘wp-config.php’); function AddPost($Title, $Content, $Date) <
global $user_ID;
$PostArr= array(
’post_status’ =>

Что возвращает функция? Оставь только главные поля: контент, тип, статус, заголовок — посмотри что будет, потом добавляй по необходимости. Могу предположить, что нты напартачил с датой

Источник

Автоматическая вставка текста в редактор WordPress

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

 add_filter( 'default_content', 'my_editor_content' ); function my_editor_content($content)

Смотрите также

Ваш комментарий будет первым

  • Популярные
  • Последние
  • Рубрики
  • Универсальный jQuery-скрипт для блоков с вкладками (табами) 978 комментариев
  • «Хлебные крошки» для WordPress без использования плагина 690 комментариев
  • Постраничная навигация в WordPress без плагина (альтернатива WP-PageNavi) 228 комментариев
  • Безболезненный перенос сайта на WordPress на новый домен 270 комментариев
  • Плагин для WordPress «Предпросмотр комментария» на jQuery 249 комментариев
  • Как с помощью CSS прижать footer к низу окна браузера 161 комментарий
  • Загрузка части контента на WordPress с помощью AJAX 198 комментариев
  • FAQ на тегах details и summary с анимацией и микроразметкой
  • Слайдер-превью изображений при наведении мыши 16 комментариев
  • Разметка WordPress-меню по БЭМ с помощью волкера 7 комментариев
  • Удаляем ссылку у текущего пункта меню WordPress 8 комментариев
  • WordPress: добавляем в меню счетчик записей для таксономий 4 комментария
  • WordPress: выводим список всех тегов (меток) в рубрике 5 комментариев
  • User CSS — браузерное расширение для добавления пользовательских стилей к сайтам 20 комментариев
  • CSS-верстка
  • jQuery и JavaScript
  • WordPress
  • Браузеры
  • Веб-мастеринг
  • Интернет
  • Манимейкинг
  • Познавательно
  • Программы
  • Продвижение сайта

© 2006–2023 Dimox.name. Все права защищены. Перепечатка запрещена.

Источник

Добавление записей в WordPress средствами PHP

Для решения некоторых задач иногда требуется возможность добавления новой записи в WordPress средствами PHP. Такая потребность может возникать с необходимостью автоматизации процесса добавления постов/товаров в каталог. В WordPress есть специальные функции, которые отвечают за создание записей. Использовать их естественно необходимо в пределах работы самого движка. Однако мы можем создавать собственные скрипты, и подключать в них уже API WordPress. Это может быть очень удобно даже когда необходимо реализовать ajax-обработчики. Давайте рассмотрим простой пример создание записи в WordPress.

Создание записи в WordPress средствами PHP

Для примера использования функции создания записи, в директории сайта создадим файл add-post.php. В самом начале файла необходимо инициализировать движок WordPress, чтобы нам стали доступны встроенные функции. Для этого следует подключить файлы wp-load.php и admin.php.

require_once( dirname(__FILE__) . '/wp-load.php' ); require_once( dirname(__FILE__) . '/wp-admin/includes/admin.php');

Далее для создания записи мы будет использовать встроенную функцию wp_insert_post() которой стоит передать массив с основными полями для записи.

$post_data = array( 'post_title' => 'Привет! Это новая запись!', 'post_content' => 'Основной контент записи', 'post_status' => 'publish', 'post_author' => 1, 'post_category' => array(1) );

В самом деле полей для создания записи может быть гораздо больше, для простоты примера мы указали базовые поля. Весь список полей вы сможете посмотреть в документации (ссылка указана выше).

  • post_title – заголовок поста;
  • post_content – содержимое записи;
  • post_status – статус публикации, publish – запись опубликована;
  • post_author – ID пользователя, от имени которого добавляется запись;
  • post_category – ID рубрик, к которым привязана запись.

Далее массив с полями передаётся непосредственно функции, которая и создаст новую запись.

$post_id = wp_insert_post($post_data, true);

В качестве результата работы функции в переменную $post_id будет передан ID новой записи, либо объект с массивом ошибок. В целом весь пример будет выглядеть следующим образом:

require_once( dirname(__FILE__) . '/wp-load.php' ); require_once( dirname(__FILE__) . '/wp-admin/includes/admin.php'); $post_data = array( 'post_title' => 'Привет! Это новая запись!', 'post_content' => 'Основной контент записи', 'post_status' => 'publish', 'post_author' => 1, 'post_category' => array(1) ); $post_id = wp_insert_post($post_data, true); echo '
'; print_r ( $post_id ); echo '

';

Довольно часто в WordPress в записях используются дополнительные поля. Как их добавлять мы рассмотрим далее.

Добавление дополнительных полей для записи WordPress в PHP

После того как мы создали новую запись, мы получили значение в переменной $post_id. Это ID записи, теперь мы можем выполнить добавление/обновление дополнительных полей посредством встроенной функции update_post_meta(). Давайте для примера выставим дополнительному полю с кодом post_rating значение 10:

update_post_meta($post_id , 'post_rating', 10);

Аналогичным образом мы можем выставлять значение дополнительного поля строкового типа. К примеру, у нас есть дополнительное поле meta_desc со строковым типом.

update_post_meta($post_id , 'meta_desc', 'Здесь описание для поля meta_desc');

Как вы можете заметить — всё по аналогии, лишь передаются другие значения. Далее мы рассмотрим пример загрузки изображения для записи.

Добавление изображения для записи WordPress в PHP

Добавление изображения в WordPress можно разделить на два этапа. Первый этап – изображение следует загрузить медиа библиотеку, после чего мы получаем ID-записи файла в медиа библиотеке. Далее зная ID-файла, мы можем связать его с превью поста.

// загрузка файла в медиа-библиотеку $media_id = media_handle_sideload( $file_array, $post_id, $description);

В качестве параметров функции передаются три переменные:

  • $file_array – стандартный массив с полями файла, создаваемый при отправке файла на сервер ($_FILES);
  • $post_id – ID записи поста;
  • $description – описание для файла в медиа-библиотеке.

После этого, когда мы получаем значение $media_id, мы можем привязать превью к посту:

set_post_thumbnail($post_id, $media_id);

Обратите внимание, в примере не приводится весь процесс проверки файла на корректность и т.д. Поэтому этот момент вам следует учитывать самостоятельно. В целом загрузка файла будет выполняться таким образом:

// загружаем файл в медиабиблиотеку $media_id = media_handle_sideload( $file_array, $post_id, $description); // проверяем на наличие ошибок при добавлении в медиа-библиотеку if( is_wp_error($media_id) ) < @unlink($file_array['tmp_name']); echo $media_id->get_error_messages(); > // удаляем временный файл, т.к. уже добавлен в медиа-библиотеку @unlink( $file_array['tmp_name'] ); // устанавливаем изображение поста set_post_thumbnail($post_id, $media_id);

Загрузка изображения в WordPress из URL

Ещё один способ загружать изображение на сайт – посредством URL. Для этого в WordPress существует встроенная функция download_url(). Данная функция получает в качестве параметра URL-файла, который в результате будет загружен во временный каталог PHP. Для работы функции так же следует подключить следующий файл:

require_once( dirname(__FILE__) . 'wp-admin/includes/file.php');

Далее следует загрузить физически файл на сервер, и сформировать массив для добавления его в медиа-библиотеку:

// URL к файлу изображения $url = 'https://href.kz/img/test_file.png'; // описание для файла $description = "Превью для новой записи"; $file_array = array(); // массив файла // загружаем файл на сервер $tmp = download_url($url); // получаем имя файла preg_match('/[^\?]+\.(jpg|jpe|jpeg|gif|png)/i', $url, $matches ); $file_array['name'] = basename($matches[0]); $file_array['tmp_name'] = $tmp;

После того как в переменной $file_array мы имеем массив с полями файла, далее добавляем файл как уже описывалось выше:

// загружаем файл в медиабиблиотеку $media_id = media_handle_sideload( $file_array, $post_id, $description); // проверяем на наличие ошибок при добавлении в медиа-библиотеку if( is_wp_error($media_id) ) < @unlink($file_array['tmp_name']); echo $media_id->get_error_messages(); > // удаляем временный файл, т.к. уже добавлен в медиа-библиотеку @unlink( $file_array['tmp_name'] ); // устанавливаем изображение поста set_post_thumbnail($post_id, $media_id);

VK FB TW Whatsapp Telegram Email

Источник

Читайте также:  Зачем нужен язык программирования java
Оцените статью