Comentários anônimos

Este é um repost de uma pergunta feita no stackoverflow, e foi encaminhado para este site:

Meu cliente quer criar um formulário no seu novo site WP que, quando preenchido e enviado, será submetido à fila de postagem de administrador para aprovar e, se ele aprovar, é postado em seu site no “blog” (que é realmente um monte de guitarra como abas). O formulário seria personalizado e possui campos personalizados. Abaixo está a forma, mas no design antigo antes de fazer uma atualização sobre ele.

Então, quão difícil seria isso? Ele não quer isso no painel de administração do WP que eu comecei a fazer, mas fora em uma página como / contribuir

Solutions Collecting From Web of "Comentários anônimos"

Você pode usar plugins para a publicação de front-end:

  • Publicar no site
  • uCan Post
  • Frontend do usuário WP

Ou você pode criar o formulário você mesmo

 



< ?php wp_dropdown_categories( 'show_option_none=Category&tab_index=4&taxonomy=category' ); ?>

< ?php wp_nonce_field( 'new-post' ); ?>

e processá-lo

  if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && ($_POST['action']== 'new_post')) { if (isset ($_POST['title'])) { $title = $_POST['title']; } else { echo 'Please enter a title'; } if (isset ($_POST['description'])) { $description = $_POST['description']; } else { echo 'Please enter the content'; } $tags = $_POST['post_tags']; $new_post = array( 'post_title' => $title, 'post_content' => $description, 'post_category' => $_POST['cat'], 'tags_input' => $tags, 'post_status' => 'draft' ); wp_insert_post($new_post); } 

E certifique-se de verificar a falta e a sanitização dos campos do formulário.

ATUALIZAR

De acordo com seu código genérico e comente, mude sua function para isso:

  if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && ($_POST['action']== 'new_post')) { $has_errors = false; if (isset ($_POST['title'])) { $title = $_POST['title']; } else { echo 'Please enter a title'; $has_errors = true; } if (isset ($_POST['performer'])) { $performer = $_POST['preformer']; } else { echo 'Please enter a performer'; $has_errors = true; } if (isset ($_POST['composer'])) { $composer = $_POST['composer']; } else { echo 'Please enter a composer'; $has_errors = true; } if (isset ($_POST['tablature'])) { $tablature = $_POST['tablature']; } else { echo 'Please enter the content'; $has_errors = true; } $tags = $_POST['post_tags']; if (!$has_errors){ //save  by: <preformer> $title .= " by: " .$performer; //save Composed by: <composer> Performed by: <performer> <tablature> $content = "<h4>Composed by: ". $composer."</h4><br /><h4>Performed by: ".$performer."</h4><br />".$tablature; $new_post = array( 'post_title' => $title, 'post_content' => $content, 'post_category' => $_POST['cat'], 'tags_input' => $tags, 'post_status' => 'draft' ); $pid = wp_insert_post($new_post); //save email and submmiter as post meta in custom fields update_post_meta($pid, 'submiter_email', urldecode($_POST['email'])); update_post_meta($pid, 'submiter_name', urldecode($_POST['submitter'])); } }</tablature></performer></composer></preformer> 

Eu não verifiquei isso, mas esse plugin provavelmente mostra como abordá-lo. Aqui está outro , ou você pode criar um usuário especial chamado ‘anônimo’ e dar-lhes permissions ‘autor’. Você provavelmente quer ter cuidado ao dar-lhes permissions de edição ou exclusão.