自定义函数,用于在特定元字段为空时重定向单个帖子

时间:2018-08-27 作者:timmyg

我有一个自定义的post类型People,它有几个元字段。当ecpt_bio meta字段为空,帖子将链接到ecpt_website 后期存档模板上的元字段。

然而,用户仍然可以访问无生物的单身人士。php帖子,如果他们有直接链接,或通过谷歌。

我编写了一个自定义函数,如果ecpt_bio 为空,并且ecpt_website 它重定向到该网站(然后通知搜索引擎)。

以下代码是否正确且安全,还是缺少什么?

谢谢

add_action( \'template_redirect\', \'redirect_empty_bios\' );
function redirect_empty_bios() {
    if(is_singular(\'people\') ) :
        global $post;
        $bio = get_post_meta($post->ID, \'ecpt_bio\', true);
        $link = get_post_meta($post->ID, \'ecpt_website\', true);
        if(empty($bio) && isset($link)) {
            wp_redirect(esc_url($link), 301);
            exit;
        } 
    endif;
}

1 个回复
最合适的回答,由SO网友:Nathan Kinkead 整理而成

从技术上讲,这段代码看起来像是在完成您想要做的事情,我没有看到任何明显的漏洞。

但是,当人们点击查看某人的个人简历时,你真的打算将他们从你的网站重定向出去吗?我认为,这听起来让用户很困惑,会导致糟糕的用户体验。

关于安全性,谁在ecpt\\U网站字段中输入数据?您还是用户?如果是用户,我肯定会避免。

我假设这些是场外链接,但如果您使用的是内部链接,则应该使用wp_safe_redirect() 而是用于内部链接。

结束

相关推荐

Prevent loading of functions

我使用了一个主题,其中包括名为“Sharethis”的服务的共享功能和字体真棒。据我所知,函数是从函数中的以下行加载的。php。TT\\u队列::add\\u css(数组(“//netdna.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css”);TT\\u排队::add\\u js(array(\'https://ws.sharethis.com/button/buttons.js\'));如何使用子函数(因为父函数中的更改将在更新