Front-End Post Submission


8

Я пытаюсь добавить форму, где пользователи могут отправлять сообщения из внешнего интерфейса.

Я следую этому руководству: http: // wpshout.com/wordpress-submit-posts-from-frontend/

То, что я делаю, это добавление этого кода в один из моих шаблонов страниц. Форма отображается нормально, но когда я нажимаю кнопку «Отправить», появляется сообщение « Ошибка страницы не найдена »

Многие комментаторы говорят, что это не работает. Кто-нибудь может указать мне правильное направление? Код неполный? Есть недостатки? Я делаю что-то неправильно?

Спасибо

Towfiq I.


Можете ли вы объяснить свой вариант использования? Существует много вариантов, но некоторые из них не подходят для всех случаев использования.
MikeSchinkel

1
исправьте название вопроса от Fron-End к Frontend или Front-End.
Филипп

Посмотрите это очень классное и простое руководство по публикации сообщений из внешнего интерфейса (включая фотогалереи и пользовательские поля!). vudu.me/postreview
trusktr

Вы можете использовать фрагменты кода из этого руководства для создания простого плагина WP Front End
Posting

Ответы:


14
<?php $postTitle = $_POST['post_title'];
$post = $_POST['post'];
$submit = $_POST['submit'];

if(isset($submit)){

    global $user_ID;

    $new_post = array(
        'post_title' => $postTitle,
        'post_content' => $post,
        'post_status' => 'publish',
        'post_date' => date('Y-m-d H:i:s'),
        'post_author' => $user_ID,
        'post_type' => 'post',
        'post_category' => array(0)
    );

    wp_insert_post($new_post);

}

?>
<!DOCTYPE HTML SYSTEM>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Untitled Document</title>
</head>

<body>
<div id="wrap">
<form action="" method="post">
<table border="1" width="200">
  <tr>
    <td><label for="post_title">Post Title</label></td>
    <td><input name="post_title" type="text" /></td>
  </tr>
  <tr>
    <td><label for="post">Post</label></td>
    <td><input name="post" type="text" /></td>
  </tr>
</table>

<input name="submit" type="submit" value="submit" />
</form>
</div>

</body>
</html>

Я обнаружил, что в Themeforest он работает нормально, с этим
можно многое сделать, вам нужно добавить дополнительный код, чтобы проверить, вошел ли пользователь в систему или что вы хотите сделать,

С другой стороны, вы должны искать в репозитории плагинов WordPress, чтобы найти несколько замечательных плагинов,
поиск по «внешнему интерфейсу»

Надеюсь, поможет


@Philip: я пробовал это, но получаю следующую ошибку: Ошибка разбора: ошибка разбора, неожиданный ';', ожидание ')' в /home/www/web21/html/tornfraua/wp-admin/custom-post-new.php на линии 10
RoflcoptrException

1
@Roflcoptr, удалите закрывающий '?>' Из строки 10, и все будет хорошо!
Филипп

Есть ли способ интегрировать раскрывающийся список категорий?
Towfiq

@Towfiq - Да, но я не могу написать в комментариях код, вы должны задать новый вопрос!
Филипп

@Philip вы можете использовать pastebin.com
Towfiq

0

Ха-ха, это мой учебник, который потерпел неудачу. Извините, но это было то, что я написал, потому что у меня никогда не было проблемы 404 с остальными.

Формы сообщений в веб- интерфейсе, которые я использую чаще всего, открываются в модальном окне, например, формы сообщений , которые я создавал для http://wphonors.com , загружаются во всплывающее окно Thickbox, и я считаю, поэтому у меня никогда не возникало проблем с это. Я мог делать все, что хотел с моими формами, ajax submit, отправлять перенаправления на отправленные сообщения или просто показывать сообщение и переходить на произвольную страницу.

Я плохо справлялся с этим уроком, у меня были благие намерения :)

Может быть, попробуйте загрузить их с помощью Thickbox, это действительно очень просто сделать. Я все еще работаю над последующим учебным пособием, чтобы выкупить неудачное завершение, но было трудно заставить его работать так, как большинство людей могли бы реализовать его на своих сайтах.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.