Wordpress:如何为每个帖子添加其他链接?

时间:2017-03-07 10:56:04

标签: wordpress

例如我有这样的结构:

example.com/product/12345

产品 - 定制后期型,
12345 - post slug。
我需要为每个帖子添加额外的“/ go”链接,所以 example.com/product/12345/go,将重定向到将在12345帖子的met​​a中的网址。
我该怎么做? (如果可能的话,没有额外的插件)

1 个答案:

答案 0 :(得分:0)

这是解决方案。
的functions.php:

add_action('init', 'go_redirect');
function go_redirect() {
    add_rewrite_rule( 'product\/([\d]*)\/go$', 'index.php?pagename=$matches[1]&redirect=1', 'top' );
    add_filter( 'query_vars', function( $vars ){
        $vars[] = 'redirect';
        return $vars;
    } );
}

在single.php的开头:

<?php 
$go = get_query_var('redirect');
$post_id = $post->ID;
if ($go) {header('Location: ' . get_post_meta($post_id, 'redirect_url', true), true, 301);}
?>