无法回显GET_DELETE_POST_LINK

时间:2013-05-14 作者:deimos

我正在使用custom post_typeinside the loop 我回显get\\u delete\\u post\\u链接,但没有任何回显。

<?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();?>
这是输出

<a href="">Delete</a>

2 个回复
最合适的回答,由SO网友:montrealist 整理而成

用户是否已登录并允许删除此帖子类型的帖子?里面有三张支票get_delete_post_link 在任何事情发生之前的功能:

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;
我猜这是你的第三次检查失败了。您可以将它们粘贴到代码中并替换return; 使用调试代码查看发生了什么:

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. \';
}

SO网友:s_ha_dum

我所能看到的可能是is the check for delete permissions.

if ( !current_user_can( $post_type_object->cap->delete_post, $post->ID ) )
     return;
如果您的用户没有帖子的删除权限,函数将不返回任何内容。

还可能有一个过滤器get_delete_post_link.

结束

相关推荐