我有一个有趣的任务。我已经为 WordPress 编写了自定义 404 处理程序并提取了 URL。然后,在做了一些逻辑之后,我得到了一个需要显示的 WordPress 帖子 ID,而不是 404 页面。
如何显示 WordPress 帖子页面而不是 404 页面?我唯一能想到的就是做
echo wp_remote_fopen(....<post permalink>...);
Run Code Online (Sandbox Code Playgroud)
但有没有其他方法可以做到这一点?谢谢
我无法通过重写模板的 404.php 来做到这一点。而且我认为这将非常依赖于模板。相反,我设法使用 template_redirect 操作来显示帖子。插件函数的代码如下:
function func_404_redirect($query){
global $wp_query;
$post = get_post(2);
$wp_query->queried_object = $post;
$wp_query->is_single = true;
$wp_query->is_404 = false;
$wp_query->queried_object_id = $post->ID;
$wp_query->post_count = 1;
$wp_query->current_post=-1;
$wp_query->posts = array($post);
}
add_filter('template_redirect','func_404_redirect');
Run Code Online (Sandbox Code Playgroud)