- WordPress php автоматическое добавление
- Автоматическая вставка текста в редактор WordPress
- Смотрите также
- Ваш комментарий будет первым
- Добавление записей в WordPress средствами PHP
- Создание записи в WordPress средствами PHP
- Добавление дополнительных полей для записи WordPress в PHP
- Добавление изображения для записи WordPress в PHP
- Загрузка изображения в WordPress из URL
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