Inscrição inicial / login e publicação / atualização 1 postagem personalizada

4

Eu quero permitir que um usuário registre / faça login por meio de um formulário de front end e possa criar 1 postagem personalizada , que somente eles poderão edite e atualize por meio de um formulário de front end .

Isso fará parte de um "painel".

É muito importante que isso funcione com o plug-in enlace .

Consegui fazer o caminho até lá usando os formulários front-end do ACF. Isso permite a edição e atualização de uma postagem personalizada.

O problema com isso é que:

  1. Não há registro / login no front end.
  2. A postagem já foi criada, enquanto eu preciso de um usuário para fazer login e criar 1 postagem inicialmente.
  3. Só posso editar o post quando estou na página real. Preciso que o usuário só possa editar sua própria postagem.

Se alguém puder me apontar na direção certa com esses problemas ou tiver maneiras criativas de contorná-los, isso seria ótimo. Eu preciso fazer isso sem usar muitos outros plugins.

ATUALIZAÇÃO:

Descobri que isso me permitirá criar uma nova postagem por meio de um formulário de front end. Usando o action do formulário, acho que posso redirecionar o usuário para a postagem personalizada que acabou de criar. Portanto, isso permitirá que eles atualizem / editem a postagem por meio da segunda caixa de código abaixo.

Então, tudo o que preciso fazer é o registro / login do usuário!

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

O código abaixo permite que o usuário edite / atualize a postagem que acabou de criar.

<?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(); ?>
    
por Rob 03.07.2012 / 12:07

4 respostas

5

O plugin WP User Frontend atenderá a todas as suas necessidades. Você pode encontrar o plugin aqui: enlace . O plug-in permite ao usuário criar novas postagens, editar postagens e editar perfis a partir do frontend do site. Portanto, os usuários não precisam entrar no painel de administração. Tudo o que eles precisam fazer pode ser feito a partir do frontend.

Se você fizer uma pequena pesquisa no Google, encontrará muitos outros plugins com recursos semelhantes. Eu acredito que o WP User Frontend será mais compatível com suas necessidades e desejos.

    
por Aleks 03.07.2012 / 13:25
1

Como você já resolveu o problema de edição, para fazer o login e o registro frontend, use o plug-in s2member . Eu uso no meu site para lidar com associações e impedir que os membros acessem o back-end do Wordpress.

    
por Logen 13.07.2012 / 04:20
0

Por apenas gerenciar o registro de usuários e fazer login no front-end, o Meu login é um bom trabalho.

  

Este plugin faz o login do WordPress, o registro e esquece   páginas de senha de acordo com o seu tema atual. Cria uma página para   use no lugar de wp-login.php, usando um modelo de página do seu tema.   Também inclui um widget para o login da barra lateral.

A página do plugin não tem Screenshots, então aqui estão:

AquiéondevocêredirecionariaosusuáriosparaapáginaqueusaoTemplateName:Login:

    
por brasofilo 11.07.2012 / 04:06
0

Estou usando o plugin wp-members para registro de usuários e login sem acessar o back end do Wordpress. Você precisaria de alguma codificação personalizada para a redefinição de senha. Estou usando esta solução .

Obrigado pelo código que permite aos usuários criar novas postagens!

    
por Adj 27.02.2013 / 13:54