不接触rewrites - 你可能会这样做
website.com/?goto-amazon=<?php echo get_the_ID() ?>
Which\'ed输出
website.com/?goto-amazon=42
在哪里
42
是包含
amazon_keywords
.
在您的站点中,您可以收听goto-amazon
查询并随后重定向
add_action( \'init\', function(){
if (isset($_GET[\'goto-amazon\'])) {
$keywds = get_field(\'amazon_keywords\',intval($_GET[\'goto-amazon\']));
$link = "http://www.amazon.co.uk/s/?_encoding=UTF8&camp=1634&creative=19450&field-keywords={$keywds}&linkCode=ur2&tag=AFFID";
wp_redirect($link);
exit;
}
});
更新要进行重写,您可以这样做。在你的岗位上
$url = get_site_url();
$id = get_the_ID();
echo "<a href=\'{$url}/goto/amazon/{$id}/\'>go to Amazon</a>";
这样的链接
website.com/goto/amazon/42/
然后在你的功能中
add_action( \'init\', function(){
// uncomment reload once or twice, or hit SAVE in wp-admin > Settings > Permalinks
//flush_rewrite_rules();
add_rewrite_tag(\'%gotoamazon%\',\'([^&]+)\');
add_rewrite_rule(\'^goto/amazon/(.*)/?\',\'index.php?gotoamazon=$matches[1]\',\'top\');
});
add_action( \'template_redirect\', function(){
global $wp_query;
if ($goto = get_query_var( \'gotoamazon\' )) {
$keywds = urlencode(get_field(\'amazon_keywords\',intval($goto)));
$link = "http://www.amazon.co.uk/s/?_encoding=UTF8&camp=1634&creative=19450&field-keywords={$keywds}&linkCode=ur2&tag=AFFID";
wp_redirect($link);
exit;
}
});
处理重写时,请确保重置重写规则,即上面注释代码中的说明。
我不知道amazon对关键字的期望是什么,但它们应该是urlencode()
\'教育部