我们创建了一些页面做特殊功能,不希望被管理员等误删。可以使用下面的方法。当用户删除被保护的页面时就会提示“Can not delete/trash.”。下列示例中521, 517, 519, 1417为被保护的文章/页面ID。

add_action('wp_trash_post', 'restrict_trash_page', 99, 2);
function restrict_trash_page($postid)
{
    if (in_array($postid, array(521, 517, 519, 1417))) {
        wp_die('Can not delete/trash.');
    }
}

另外,如果这些页面比较特殊,不希望暴露在sitemap中。应该从sitemap中剔除:

function ope_disable_sitemap_specific_page($args, $post_type)
{
    if ('page' !== $post_type) {
        return $args;
    }
    $args['post__not_in'] = isset($args['post__not_in']) ? $args['post__not_in'] : array();
    $args['post__not_in'][] = 521;
    $args['post__not_in'][] = 519;
    $args['post__not_in'][] = 517;
    $args['post__not_in'][] = 1417;
    return $args;
}
add_filter('wp_sitemaps_posts_query_args', 'ope_disable_sitemap_specific_page', 10, 2);

延伸阅读: