Formulario de publicación pública para WordPress
Pregunta
Hola, estoy buscando una forma muy simple (sin plugins) de agregar un formulario dentro de una plantilla de página que permita que un usuario registrado publique desde fuera de WP-Admin. Entonces, básicamente, la publicación estará bajo el autor iniciado.
He estado buscando en la web algunos tutoriales, etc., pero no he tenido demasiada suerte y muchos parecen querer optar por complementos, etc.
¿Alguien puede ayudar gracias?
Solución
Puedes usar el wp_insert_post()
función.
mira esto. puedes pegarlo en category.php
Por ejemplo y visite una página de categoría y verifíquela. Pero asegúrese de poner el código superior sobre el get_header()
función.
<?php
if(isset($_POST['new_post']) == '1') {
$post_title = $_POST['post_title'];
$post_category = $_POST['cat'];
$post_content = $_POST['post_content'];
$new_post = array(
'ID' => '',
'post_author' => $user->ID,
'post_category' => array($post_category),
'post_content' => $post_content,
'post_title' => $post_title,
'post_status' => 'publish'
);
$post_id = wp_insert_post($new_post);
// This will redirect you to the newly created post
$post = get_post($post_id);
wp_redirect($post->guid);
}
?>
--
<!-- this form shows only if user is logged in -->
<?php if ( is_user_logged_in() ) { ?>
<form method="post" action="">
<input type="text" name="post_title" size="45" id="input-title"/>
<?php wp_dropdown_categories('orderby=name&hide_empty=0&exclude=1&hierarchical=1'); ?>
<textarea rows="5" name="post_content" cols="66" id="text-desc"></textarea>
<input type="hidden" name="new_post" value="1"/>
<input class="subput round" type="submit" name="submit" value="Post"/>
</form>
<?php } ?>
Para más información debe echar un vistazo aquí wp_insert_post con un formulario
buena suerte
Otros consejos
Si no le importa cambiar su tema, es posible que desee probar P2: http://wordpress.org/extend/themes/p2También hay un video en acción aquí: http://p2theme.com/
P2 permite a las personas publicar directamente desde la página de inicio, que parece lo que estás buscando.