Agregar enlace de "Restaurar" en la interfaz

2

Estoy usando get_delete_posts_link($postid) para permitir que los usuarios envíen sus publicaciones a la basura desde la interfaz. Ahora estoy tratando de replicar la misma funcionalidad para que ellos "deshagan" o restauren las publicaciones también.

get_delete_posts_link($postid) parece generar una URL como esta: enlace

Y cuando voy a wp-admin y miro qué enlace usa el enlace de restauración, parece ser el EXCEPTO que usa action = untrash en lugar de action = trash.

Ya que no parece haber una función que refleje la función de eliminar publicación de enlace, pensé que tal vez crear manualmente la URL con variables y usar la acción "deshacer" lo haría, pero no parece funcionar de esa manera, la restauración no funcionará.

¿Cuál es la mejor manera de poner un enlace para "restaurar" una publicación en la interfaz?

EDITAR: Este es el marcado que estoy usando para crear el enlace "restaurar" (no funciona):

<?php
$untrashurl = get_bloginfo('wpurl') . '/wp-admin/post.php?post=' . $postid . '&action=untrash';
?>
<a class="db-post-link" href="<?php echo wp_nonce_url($untrashurl); ?>">Untrash</a>
    
pregunta Eckstein 10.04.2013 - 22:13

1 respuesta

4

Por tu comentario anterior, creo que estás teniendo problemas con la pieza _wpnonce del rompecabezas. Al observar el código en /wp-admin/post.php , parece que el untrash la instrucción es verificar que no haya WordPress válido, y no obtener uno.

Esto podría hacer el truco:

<?php
function wpse_95348_undelete_post( $post_id ) {
    // no post?
    if( !$post_id || !is_numeric( $post_id ) ) {
        return false;
    }
    $_wpnonce = wp_create_nonce( 'untrash-post_' . $post_id );
    $url = admin_url( 'post.php?post=' . $post_id . '&action=untrash&_wpnonce=' . $_wpnonce );
    return $url; 
}
?>

Utiliza wp_create_nonce() para generar el nonce que necesita y admin_url() para obtener una URL wp-admin adecuada.

Lecturas adicionales sobre nonces de WP

    
respondido por el Pat J 11.04.2013 - 00:50

Lea otras preguntas en las etiquetas