Front-End-Post-Einreichung


8

Ich versuche, ein Formular hinzuzufügen, in dem Benutzer Beiträge vom Front-End einreichen können.

Ich folge diesem Tutorial: http: // wpshout.com/wordpress-submit-posts-from-frontend/

Ich füge diesen Code einer meiner Seitenvorlagen hinzu. Das Formular wird in Ordnung angezeigt, aber wenn ich auf die Schaltfläche " Senden " klicke, wird " Fehler " Seite nicht gefunden " angezeigt.

Viele der Kommentatoren sagen, dass es nicht funktioniert. Kann mich jemand in die richtige Richtung weisen? Ist der Code unvollständig? Hat er Fehler? Mache ich etwas falsch?

Vielen Dank

Towfiq I.


Können Sie Ihren Anwendungsfall erklären? Es gibt viele Optionen, aber einige sind nicht für alle Anwendungsfälle geeignet.
MikeSchinkel

1
Korrigieren Sie Ihren Fragentitel von Fron-End zu Frontend oder Front-End.
Philip

Schauen Sie sich dieses sehr coole und einfach zu befolgende Tutorial an, wie Sie vom Frontend aus posten können (einschließlich Fotogalerien und benutzerdefinierten Feldern !!). vudu.me/postreview
trusktr

Sie können die Code-Schnipsel aus diesem Tutorial verwenden, um ein einfaches WP Front End Posting-Plugin zu erstellen: http://www.cozmoslabs.com/5528-wordpress-post-from-front-end/
Adrian Spiac

Antworten:


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>

Ich habe festgestellt, dass dies bei Themeforest gut funktioniert.
Sie können viele Dinge damit tun. Sie müssen zusätzlichen Code hinzufügen, um zu überprüfen, ob ein Benutzer angemeldet ist oder was auch immer Sie tun möchten.

Auf der anderen Seite müssen Sie im Repo der WordPress-Plugins suchen, um einige großartige Plugins herauszufinden.
Suchen Sie nach "Frontend".

ich hoffe es hilft


@Philip: Ich habe dies versucht, erhalte jedoch den folgenden Fehler: Analysefehler: Analysefehler, unerwartet ';', erwartet ')' in /home/www/web21/html/tornfraua/wp-admin/custom-post-new.php auf Linie 10
RoflcoptrException

1
@Roflcoptr, entferne das Schließen '?>' Aus Zeile 10 und es wird in Ordnung sein!
Philip

Gibt es eine Möglichkeit, die Kategorie-Dropdown-Liste zu integrieren?
Towfiq

@Towfiq - Ja, aber ich kann den Code nicht in die Kommentare schreiben, du musst eine neue Frage stellen!
Philip

@Philip können Sie verwenden pastebin.com
Towfiq

0

Haha, das ist mein Tutorial, das schlimm gescheitert ist. Tut mir leid, das habe ich geschrieben, weil ich nie das 404-Problem hatte, das alle anderen damit hatten.

Die Frontend- Postformulare, die ich meistens verwende, werden in einem modalen Fenster geöffnet. Beispielsweise werden die Postformulare, die ich für http://wphonors.com erstellt habe , in das Dickbox-Popup geladen, weshalb ich glaube, dass ich nie ein Problem damit hatte diese. Ich konnte mit meinen Formularen alles tun, was ich wollte, Ajax Submit, beim Submit Redirect zu den eingereichten Posts oder einfach eine Nachricht anzeigen und zu einer zufälligen Seite gehen.

Ich hatte schlechte Absichten mit diesem Tutorial, ich hatte gute Absichten :)

Vielleicht versuchen Sie, sie mit Thickbox zu laden, das ist wirklich sehr einfach. Ich arbeite immer noch an einem Follow-up-Tutorial, um das fehlgeschlagene zu beheben, aber es war schwierig, es so zu machen, wie es die meisten Leute wahrscheinlich auf ihren Websites implementieren würden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.