web-dev-qa-db-fra.com

Supprimer le lien de publication pour supprimer le message, sa méta et ses pièces jointes

J'ai utilisé

// Delete Post Link
function wp_delete_post_link($link = 'Delete This', $before = '', $after = '', $title="Move this item to the Trash", $cssClass="") {
    global $post;
    if ( $post->post_type == 'page' ) {
        if ( !current_user_can( 'edit_page' ) )
            return;
    } else {
        if ( !current_user_can( 'edit_post' ) )
            return;
    }
    $delLink = wp_nonce_url( site_url() . "/wp-admin/post.php?action=delete&post=" . $post->ID, 'trash-' . $post->post_type . '_' . $post->ID);
    $link = '<a class="' . $cssClass . '" href="' . $delLink . '" onclick="javascript:if(!confirm(\'Are you sure you want to move this item to trash?\')) return false;" title="'.$title.'" />'.$link."</a>";
    return $before . $link . $after;
}

ajouter un lien de post de suppression dans mon thème personnalisé,

<?php echo wp_delete_post_link(); ?>

mais pour une raison quelconque, il ne supprime pas toutes les informations jointes. Seul le message est supprimé. J'ai vérifié la médiathèque et les pièces jointes étaient toujours là.

Comment puis-je mettre en œuvre pour supprimer tout ce qui est lié à l'article?

Notez que je suis en train de l'implémenter sur le front-end et non du côté administrateur.

Ok en plus, j’ai ajouté une action pour delete_post et dans cette fonction appelée wp_delete_attachment pour supprimer les pièces jointes. Mais le lien de suppression généré par le tutoriel mentionné ci-dessus donne une page d'erreur wp en raison d'une nonce calculée. Mais cela fonctionne parfaitement si je change d’action en poubelle. J'ai besoin de supprimer pour travailler. Quelqu'un peut-il aider? sample image

1
booota

Essayez plutôt d’utiliser ces liens de suppression. Le vôtre ne semble pas être correctement formaté.

Pour supprimer:

$delLink = wp_nonce_url( admin_url() . "post.php", "post=" . $post->ID . "&action=delete");

Pour les ordures:

$delLink = wp_nonce_url( admin_url() . "post.php", "post=" . $post->ID . "&action=trash");

MODIFIER:

Non, essayez plutôt ceci:

$post_type = get_post_type($post);
$delLink = wp_nonce_url( admin_url() . "post.php?post=" . $post->ID . "&action=delete", 'delete-' . $post_type . '_' . $post->ID);
2
Brady

Les pièces jointes ne sont pas considérées comme faisant partie de la publication, car elles peuvent être facilement utilisées à plusieurs endroits.

Leur suppression serait considérablement plus complexe que la solution de ce tutoriel. Vous devrez créer un gestionnaire personnalisé pour votre lien (action Ajax ou autre) et récupérer à l'intérieur de ce gestionnaire les pièces jointes associées à une publication, puis les supprimer avec la publication elle-même.

1
Rarst