如何将草稿帖子的固定链接重定向到自定义的404页面?

时间:2016-06-30 作者:jchwebdev

我的用户创建的帖子带有指向未来处于草稿状态的帖子的链接。我们使用Post Name作为永久链接结构。

例如:。

 <a href="/future-draft-post">Here is our next fantastic post coming next week!</a>
由于用户已登录,我们的用户单击链接,然后重定向到草稿进行编辑。正常情况下,当未登录用户单击这些链接时,他们会收到一个令人讨厌的404。

我想要的是,未登录的用户可以单击此类链接,并被重定向到一个自定义页面,上面写着“马上就来!”

我该怎么做?

我们还需要另外两个可选功能。

理想情况下,我希望将预定的发布日期传递到“即将到来的页面!(例如,“2016年7月10日即将到来”)

我只希望这种行为适用于特定类别的帖子。其他帖子应该像往常一样重定向到404。

因此,除了检查帖子的状态外,我们还需要一种方法来检查帖子的类别和发布日期,以决定是404还是转到自定义页面。

1 个回复
SO网友:jchwebdev

这是我想到的。似乎在起作用。如果有人提出改进建议,我洗耳恭听:

// Redirect links to future posts to Coming Soon page.
add_action(\'wp\',\'redirect_coming_soon_posts\', 0);
function redirect_coming_soon_posts(){
  global $wpdb; 
  if ($wpdb->last_result[0]->post_status == "future" &&
    $wpdb->last_result[0]->post_date_gmt != \'0000-00-00 00:00:00\' && 
    ! is_admin()  ):
      session_start();

     $_SESSION[\'next_post_id\'] = $wpdb->last_result[0]->ID;         
     wp_redirect( \'/coming-soon\', 301 );
    exit();
   endif;
  }

function sess_start() {
  if (!session_id()) {
    session_start();
    }
 }
 add_action(\'init\',\'sess_start\');

相关推荐

UpdraftPlus安装了恶意软件-现在不敢下载或更新插件!

几个月前,我安装了UpdraftPlus (免费版)在我的WordPress上。组织网站。让我感到恐怖的是,紧接着我们开始得到弹出窗口,当你点击“确定”时会重定向到垃圾邮件网站。我卸载了UpdraftPlus,但问题仍然存在。谷歌提供了一个链接,指向一个有着类似问题的人——一个回复告诉我在哪里可以找到可能已经剩下的额外文件。果然,在那个地方我找到了一些UpdraftPlus德语文件。我一删除这些,弹出窗口就消失了。现在我需要一个WP备份,但我害怕安装其他插件。我真的很想使用UpdraftPlus,因为它经