Итак публикую небольшой ДОК: “Как добавить записи через сайт”, т.е. не придётся заходить в админку… форма будет доступна из любого места сайта.
Итак что нам потребуется:
начальные знания php (приветствуются)
html (без него будет туго)
Первое что нужно сделать – добавить форму “add post” в нужное место сайта , вот пример, кода формы
<form method="get" action="wp-content/plugins/add-post-from-site/check.php"> <table cellspacing="20px" id="form"> <tr> <td align="center"> <h2 align="left">Форма добавления новой записи</h2> <div style="padding-left:10px; text-align: left;"> <input type="text" name="name" style="color:#999999;" id="name" value="Имя пользователя" size="25" tabindex="1" /><br/> <div style="height:5px;"></div> <input type="text" name="pasw" id="pasw" style="color:#999999;" value="Пароль" size="25" tabindex="2" /> <div style="height:5px;"></div> <p><h3>Название записи</h3> <textarea name="title" style="color:black;" tabindex="3" cols="37" rows="1"></textarea> </p> <p><h3>Содержание записи</h3> <textarea name="content" style="color:black;" tabindex="4" cols="37" rows="10"></textarea> </p> </div> </td> </tr> </table> <p> <input name="submit" type="submit" id="submit" tabindex="5" value="Обработать" /> <input type="reset" value="Очистить" id="submit" /> </p> </form>
Теперь создадим файл проверки, который будет получать данные из формы и добавлять запись в БД
Тут возможны как минимум 2 варианта
первый – записи создают все пользователи и они автоматически добавляются в БД от пользователя (который указан по умолчанию), тогда код файла check.php будет выглядеть след. образом
<?php
require('../../../wp-config.php');
require ( ABSPATH . WPINC . '/registration.php' );
?>
<?php
if($_GET['submit']=="Обработать")
{
include_once "config.php";
$date=date("Y-m-d H:i:s");
$post = array(
'comment_status' => $comment_status,
'menu_order' => 0,
'ping_status' => $ping_status,
'post_author' => username_exists(trim($_GET['name'])),
'post_category' => array($post_category),
'post_content' => trim($_GET['content']),
'post_date' => $date,
'post_excerpt' => '',
'post_parent' => 0,
'post_password' => '',
'post_status' => $post_status,
'post_title' => trim($_GET['title']),
'post_type' => $post_type,
// 'tags_input' => [ '<tag>, <tag>, <...>' ] //For tags.
'to_ping' => '');
wp_insert_post( $post );
}
header("Location: ".$_SERVER['HTTP_REFERER'],TRUE,301);
exit();
?>
второй – используется логин, который указал сам пользователь
<?php
require('../../../wp-config.php');
require ( ABSPATH . WPINC . '/registration.php' );
?>
<?php
if($_GET['submit']=="Обработать" && $_GET['name']!="Имя пользователя" && $_GET['pasw']!="Пароль")
{
if(user_pass_ok( trim($_GET['name']), trim($_GET['pasw']) )==true)
{
include_once "config.php";
$date=date("Y-m-d H:i:s");
$post = array(
'comment_status' => $comment_status,
'menu_order' => 0,
'ping_status' => $ping_status,
'post_author' => username_exists(trim($_GET['name'])),
'post_category' => array($post_category),
'post_content' => trim($_GET['content']),
'post_date' => $date,
'post_excerpt' => '',
'post_parent' => 0,
'post_password' => '',
'post_status' => $post_status,
'post_title' => trim($_GET['title']),
'post_type' => $post_type,
// 'tags_input' => [ '<tag>, <tag>, <...>' ] //For tags.
'to_ping' => '');
wp_insert_post( $post );
}
}
header("Location: ".$_SERVER['HTTP_REFERER'],TRUE,301);
exit();
?>
Стоит отметить
после обработки информации происходит автоматическая переадресация на страницу с которой пришёл юзер.
В файл check.php встроена проверка пользователя, т.е. только зарегестрированный пользователь может добавлять записи вот код отвечающий за это место
if(user_pass_ok( trim($_GET['name']), trim($_GET['pasw']) )==true){}else{}
так же нужно создать файл config.php
<?php $comment_status="closed"; //[ 'closed' | 'open' ] $ping_status="closed";// [ 'open' | 'closed' ] $post_category=73; //ID категории для записей $post_status="publish";//[ 'draft' | 'publish' | 'pending' ] $post_type="post";//[ 'post' | 'page' ] $default_user="";//ИМЯ пользователя по умолчанию ?>
Теперь нужно указать путь до файла check.php в параметре action формы.
Да вроде и вся необходимая информация… Теперь надо просто попробовать…
В комментариях к этой записи можете задавать вопросы… Но сразу говорю я не буду за вас писать код,я готов помогать и подсказывать!
