wake-up-neo.net

Front-End-Registrierung/Anmelden & Veröffentlichen/Aktualisieren von 1 benutzerdefinierten Beitrag

Ich möchte einem Benutzer erlauben, sich über ein Front-End-Formular zu registrieren/anzumelden und einen benutzerdefinierten Beitrag zu erstellen , den nur er bearbeiten und bearbeiten kann Update über ein Frontend-Formular .

Dies wird Teil eines "Dashboards" sein.

Es ist sehr wichtig, dass dies mit dem http://www.advancedcustomfield.com Plugin funktioniert.

Ich habe es geschafft, mithilfe der Front-End-Formulare von ACF einen Teil des Weges dorthin zu finden. Dies ermöglicht das Bearbeiten und Aktualisieren eines benutzerdefinierten Beitrags.

Das Problem dabei ist, dass:

  1. Es gibt keine Front-End-Registrierung/Anmeldung.
  2. Der Beitrag wurde bereits erstellt. Ich benötige einen Benutzer, um mich anzumelden und zunächst einen Beitrag zu erstellen.
  3. Ich kann den Beitrag nur bearbeiten, wenn ich mich auf der aktuellen Seite befinde. Ich brauche den Benutzer, um nur ihren eigenen Beitrag bearbeiten zu können.

Wenn jemand mich mit diesen Themen in die richtige Richtung lenken könnte oder irgendwelche kreativen Möglichkeiten hätte, sie zu umgehen, dann wäre das großartig. Ich muss dies tun, ohne viele andere Plugins zu verwenden.

UPDATE:

Ich habe festgestellt, dass ich auf diese Weise einen neuen Beitrag über ein Front-End-Formular erstellen kann. Mit der action des Formulars kann ich den Benutzer zu dem benutzerdefinierten Beitrag umleiten, den er gerade erstellt hat. Daher können sie den Beitrag über das 2. Code-Feld unten aktualisieren/bearbeiten.

Alles was ich tun muss ist die Benutzerregistrierung/Anmeldung!

<?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>

Mit dem folgenden Code kann der Benutzer den soeben erstellten Beitrag bearbeiten/aktualisieren.

<?php
/**
 * @package WordPress
 * @subpackage Default_Theme
 * Template Name: Login
 */
acf_form_head();
get_header(); ?>

    <?php if (have_posts()) : ?>
        <?php while (have_posts()) : the_post(); ?>

<div style="width:719px;">
<?php global $current_user;
get_currentuserinfo();
$page_name = $current_user->user_login; ?>
Logged in as: <?php echo $page_name; ?> (<?php echo $current_user->ID; ?>)
<br />
List posts by <?php echo $page_name; ?>:

<?php               
$loop = new WP_Query( array(
    'post_type' => 'page',
    'author' => $current_user->ID
));

while ( $loop->have_posts() ) : $loop->the_post(); 
the_title();
echo "<br>";
endwhile;

//Reset Query
wp_reset_query();

?>

<?php $defaults = array(
    'post_id' => $post->ID, // post id to get field groups from and save data to
    'field_groups' => array(), // this will find the field groups for this post (post ID's of the acf post objects)
    'form_attributes' => array( // attributes will be added to the form element
        'class' => ''
    ),
    'return' => add_query_arg( 'updated', 'true', get_permalink() ), // return url
    'html_field_open' => '<div class="field">', // field wrapper open
    'html_field_close' => '</div>', // field wrapper close
    'html_before_fields' => '', // html inside form before fields
    'html_after_fields' => '', // html inside form after fields
    'submit_value' => 'Update', // value for submit field
    'updated_message' => 'Post updated.', // default updated message. Can be false to show no message
);

acf_form(); ?>
</div>

        <?php endwhile; ?>
    <?php endif; ?>

<?php get_footer(); ?>
4
Rob

Das WP User Frontend Plugin wird all Ihren Anforderungen gerecht. Sie finden das Plugin hier: https://wordpress.org/extend/plugins/wp-user-frontend/ . Das Plugin bietet dem Benutzer die Möglichkeit, neue Posts zu erstellen, Posts zu bearbeiten und Profile über das Site-Frontend zu bearbeiten. Die Benutzer müssen also nicht das Admin-Panel betreten. Alles, was sie tun müssen, kann vom Frontend aus erledigt werden.

Wenn Sie eine kleine Google-Suche durchführen, werden Sie auf viele andere Plugins mit ähnlichen Funktionen stoßen. Ich glaube, dass das WP Benutzer-Frontend am besten mit Ihren Bedürfnissen und Wünschen kompatibel ist.

5
Aleks

Da Sie das Bearbeitungsproblem bereits gelöst haben, verwenden Sie s2member plugin , um Ihr Frontend-Login und Ihre Registrierung zu regeln. Ich verwende es auf meiner Website, um Mitgliedschaften zu verwalten und Mitglieder daran zu hindern, auf das Backend von Wordpress zuzugreifen.

1
Logen

Ich benutze das wp-members-Plugin für die Benutzerregistrierung und -anmeldung, ohne auf das Wordpress-Backend zuzugreifen. Sie benötigen jedoch eine benutzerdefinierte Codierung für das Zurücksetzen des Kennworts. Ich benutze diese Lösung .

Vielen Dank für den Code, mit dem Benutzer neue Beiträge erstellen können!

0
Adj

Um nur die Benutzerregistrierung und die Anmeldung im Front-End zu verwalten, macht Theme My Login einen ganz netten Job.

Dieses Plugin thematisiert die WordPress-Anmelde-, Registrierungs- und Passwort-Seiten gemäß Ihrem aktuellen Thema. Es wird eine Seite erstellt, die anstelle von wp-login.php verwendet wird. Dabei wird eine Seitenvorlage aus Ihrem Thema verwendet. Enthält auch ein Widget für die Sidebar-Anmeldung.

Die Plugin-Seite enthält keine Screenshots.
enter image description here


Hier leiten Sie die Benutzer zu der Seite weiter, die den Template Name: Login verwendet:
enter image description here

0
brasofilo