No se puede repetir get_delete_post_link

2

Estoy usando post_type personalizado y dentro del bucle Me hago eco de get_delete_post_link pero no hay nada haciendo eco.

<?php 
$wpquery = new WP_Query('post_type=myposts');
  if( $wpquery->have_posts() ) {
     while ($wpquery->have_posts()) : $wpquery->the_post();

        $id = get_the_ID();
        //just a test to see can I get post IDs and I get them
        echo $id; ?>

        <a href="<?php echo get_delete_post_link($id); ?>">Delete</a>
        <?php endwhile; }
          wp_reset_query();?>

Esta es la salida

<a href="">Delete</a>
    
pregunta deimos 14.05.2013 - 04:22

2 respuestas

3

¿Ha iniciado sesión el usuario y está autorizado a eliminar las publicaciones de este tipo de publicación? Hay tres controles dentro de la función get_delete_post_link antes de que algo suceda:

if ( !$post = get_post( $id ) )
    return;

$post_type_object = get_post_type_object( $post->post_type );
if ( !$post_type_object )
    return;

if ( !current_user_can( $post_type_object->cap->delete_post, $post->ID ) )
    return;

Supongo que es la tercera comprobación que está fallando en tu caso. Puede pegarlos en su código y reemplazar return; con el código de depuración para ver qué está pasando:

if ( !$post = get_post( $id ) ) {
    echo 'could not get post. ';
} else {
    echo 'got post. ';
}

$post_type_object = get_post_type_object( $post->post_type );
if ( !$post_type_object ){
    echo 'could not get post object. ';
} else {
    echo 'got post object. ';
}

if ( !current_user_can( $post_type_object->cap->delete_post, $post->ID ) ){
    echo 'user does not have proper capability. ';
} else {
    echo 'user is ok to delete this post. ';
}
    
respondido por el montrealist 14.05.2013 - 04:55
1

Todo lo que puedo ver que podría causar esto es el cheque para eliminar permisos .

if ( !current_user_can( $post_type_object->cap->delete_post, $post->ID ) )
     return;

Si su usuario no tiene permisos de eliminación para la publicación, la función no devuelve nada.

También podría haber un filtro en get_delete_post_link .

    
respondido por el s_ha_dum 14.05.2013 - 04:53

Lea otras preguntas en las etiquetas