¿Publicar un artículo pendiente desde front -end con un botón?
Pregunta
¿Es posible tomar el botón Publicar azul en el extremo trasero del WordPress y colocarlo en la parte delantera cerca de la publicación en mi index.php? ¿Necesito una forma de publicar el artículo pendiente sin ir al tablero y solo el administrador puede ver el botón Publicar?
<?php
$args=array(
'post_type' => 'post',
'post_status' => 'pending',
'order' => 'ASC',
'caller_get_posts' =>1,
'paged' =>$paged,
);
Gracias a todos de antemano por ayuda: D
Solución
Primero cree una función que imprima el botón Publicar:
//function to print publish button
function show_publish_button(){
Global $post;
//only print fi admin
if (current_user_can('manage_options')){
echo '<form name="front_end_publish" method="POST" action="">
<input type="hidden" name="pid" id="pid" value="'.$post->ID.'">
<input type="hidden" name="FE_PUBLISH" id="FE_PUBLISH" value="FE_PUBLISH">
<input type="submit" name="submit" id="submit" value="Publish">
</form>';
}
}
A continuación, cree una función para cambiar el estado de la publicación:
//function to update post status
function change_post_status($post_id,$status){
$current_post = get_post( $post_id, 'ARRAY_A' );
$current_post['post_status'] = $status;
wp_update_post($current_post);
}
Luego asegúrese de atrapar el envío del botón:
if (isset($_POST['FE_PUBLISH']) && $_POST['FE_PUBLISH'] == 'FE_PUBLISH'){
if (isset($_POST['pid']) && !empty($_POST['pid'])){
change_post_status((int)$_POST['pid'],'publish');
}
}
Ahora todo el código anterior puede ir en el archivo Functions.php de su tema y todo lo que tiene que hacer es agregar show_publish_button();
en su bucle de publicaciones pendientes después de cada publicación.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a wordpress.stackexchange