Hallo liebe Community. Derzeit programmier ich an meiner zukünftigen Webseite und komme momentan nicht weiter. Ich möchte meinen registrierten Benutzern erlauben Artikel vom Frontend aus zu schreiben. Dafür möchte ich eine benutzerdefinierte Seite erstellen welche dies meinen Besuchern ermöglicht.
Das mit den Custom Templates ist auch kein Problem und mein Code übermittelt WordPress auch die Daten, jedoch klappt es mit der Weiterleitung nicht ganz. Ich möchte das nach dem Übertragen der Benutzer wieder auf die Startseite weitergeleitet wird. Dies wird ja generell mit wp_redirect() gemacht jedoch greift dies nicht. Auch werden die Fehlermedlungen, falls beispielsweise der Titel nicht eingegeben wurde, nicht angezeigt. Hier mal der Code den ich bisher habe:
div class="site">
<div id="wrap">
<form action="" method="post">
<table border="1" width="700">
<tr>
<td><label for="post_title">Title</label></td>
<td><input name="post_title" type="text" size="60" /></td>
</tr>
<tr>
<td><label for="content">Content</label></td>
<td><textarea cols="70" rows="3" class="mceEditor" name="content"></textarea></td>
</tr>
<tr>
<td><label for="post_image">Post Image</label></td>
<td><input name="post_image" type="text" size="60" value="image url" /></td>
</tr>
<tr>
<td><label for="tag">Tags:</label></td>
<td><input name="tag" type="text" size="60"/></td>
</tr>
</table>
<br/>
<input name="submit" type="submit" value="Send Snippet" class="button-primary" />
<?php wp_nonce_field( 'new-post' ); ?>
</form>
<br/>
</div>';
<?php
if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['submit'] )) {
if (isset ($_POST['post_title'])) {
$postTitle = $_POST['post_title'];
} else {
echo 'Please enter a title';}
if (isset ($_POST['content'])) {
$content = $_POST['content'];
} else {
echo 'Please enter a title';}
if (isset ($_POST['tag'])) {
$tags = $_POST['tag'];
} else {
echo 'Please enter a title';}
$submit = $_POST['submit'];
function add_custom_field($post_ID) {
global $wpdb;
$image = $_POST['post_image'];
add_post_meta($post_ID, 'pimage', $image, true);
}
if( isset($submit) && !empty( $_POST['post_title'] )) {
global $current_user;
get_currentuserinfo();
$new_post = array(
'post_title' => $postTitle,
'post_content' => $content,
'tags_input' => $tags,
'get_post_meta' => $image,
'post_status' => 'draft',
'post_date' => date('Y-m-d H:i:s'),
'post_author' => $current_user->ID,
'post_type' => 'post',
);
wp_insert_post($new_post);
wp_redirect(home_url());
}
}
do_action('wp_insert_post', 'add_custom_field');
echo '</div>';
get_footer();
Alles anzeigen
Es wäre wirklich super wenn mir jemand helfen könnte.
PS: Ich habe natürlich an die Reche-Verwaltung gedacht da mit diesem Code jeder Besucher posten könnte. Das wird nachträglich eingebaut.
LG Mike