J'essaie de créer un code court pour supprimer le message que l'utilisateur publie à partir de l'extrémité avant de mon site.
J'ai essayé le code court ci-dessous mais je reçois toujours l'erreur "Le lien que vous avez suivi a expiré." Veuillez voir la capture d'écran de l'image ci-dessous.
//Shortcode to delete post
function delete_my_posts() {
ob_start();
$url = get_bloginfo('url');
if (current_user_can('edit_post', $post->ID)){
echo '<a class="delete-post" rel=”nofollow” href="';
echo wp_nonce_url("$url/wp-admin/post.php?action=trash&post=$id", 'delete-post_' . $post->ID);
echo '">Delete post</a>';
}
return ob_get_clean();
}
add_shortcode( 'delete_me', 'delete_my_posts' );
Capture d'écran: https://imgur.com/a/PMB1uU4
Quelqu'un peut-il bien vouloir conseiller sur cette erreur?
Merci
Voici la version reformatée de votre code. get_delete_post_link()
est utilisé pour récupérer l'URL de suppression de message afin que nous n'ayons pas à nous soucier des trucs nonce. global $post
est conservé pour éviter PHP remarquez qui est actuellement là dans votre code. Veuillez le vérifier.
function wpso_delete_my_posts() {
global $post;
ob_start();
if ( current_user_can('delete_posts', $post->ID ) ) {
echo '<a class="delete-post" rel="nofollow" href="' . esc_url( get_delete_post_link( $post->ID ) ) . '">Delete Post</a>';
}
return ob_get_clean();
}
add_shortcode( 'delete_me', 'wpso_delete_my_posts' );