在我的WP多用户项目中,我正在设计一个从前端删除页面的模板(只有超级管理员才能访问后端管理面板)
我几乎达到了预期的效果,但当我按“Delete”时,该功能会删除所有页面。我只想删除所选页面。以下是我创建的代码:
<?php $pages = get_pages();
foreach ( $pages as $page ) {
$option = \'<li>\';
$option .= \'<a href="\' . wp_delete_post( $page->ID ) . \'">\';
$option .= $page->post_title;
$option .= \'</a>\';
$option .= \'</li>\';
echo $option; } ?>
编辑2抱歉,我错过了一些更改
<?php $pages = get_pages();foreach ( $pages as $page ) {
$option = \'<li>\';
$option .= $page->post_title;
// $option .= \'<a href="\' . wp_delete_post( $page->ID ) . \'">\';
$option .= \'Delete</a>\';
$option .= \'</li>\';
echo $option; } ?>
最合适的回答,由SO网友:Diogo Gomes 整理而成
您正在删除包含该代码的所有页面,因为您正在触发函数wp\\u delete\\u post()。
您应该构建url来删除页面(或帖子),如下所示:
$delLink = wp_nonce_url( get_bloginfo(\'wpurl\') . "/wp-admin/post.php?action=delete&post=" . $page->ID, \'delete-post_\' . $page->ID);
因此,您的代码应该是:
$pages = get_pages();
foreach ( $pages as $page ) {
$delLink = wp_nonce_url( get_bloginfo(\'wpurl\') . "/wp-admin/post.php?action=delete&post=" . $page->ID, \'delete-post_\' . $page->ID);
$option = \'<li>\';
$option .= \'<a href="\' . $delLink . \'">\';
$option .= $page->post_title;
$option .= \'</a>\';
$option .= \'</li>\';
echo $option;
}
干杯