我有一个电子商务网站的两个产品页面:一个用Woocommerce(在WordPress中)制作,另一个用AMP编写我的自我。
Here是WordPress页面,here是AMP页面。如果不考虑这两个页面位于两个不同的子域中,我如何将移动用户重定向到该页面的AMP版本?
提出了类似的问题,但它只指定了如何为简单的页面而不是产品页面执行此操作。
有谁知道怎么做?
答案 0 :(得分:1)
要回答您的问题,如果您不想使用插件,则必须在主题functions.php中对以下行进行硬编码。
按照您的问题设置方法
第1步:创建Metabox
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files\Python36\lib\site-packages\suds\client.py", line 242
except Exception, e:
^
SyntaxError: invalid syntax
第2步:添加输入字段
//Create Metabox
function wc_49570125_register_meta_boxes() {
add_meta_box('meta-box-id', __('Mobile Version URL', 'yourtextdomain'), 'wc_49570125_my_display_callback', 'product');
}
add_action('add_meta_boxes', 'wc_49570125_register_meta_boxes');
第3步:保存输入字段
// Add Input Field
function wc_49570125_my_display_callback($post) {
$get_id = $post->ID;
$get_value = get_post_meta($get_id, 'wc_mobile_version_url', true);
?>
<p>
<label><?php _e('Mobile URL to Redirect', 'yourtextdomain'); ?></label>
<input type="text" name="wc_mobile_version_url" value="<?php echo $get_value; ?>"/>
</p>
<?php
}
第4步:将移动用户重定向到移动版
// save input field
function wc_49570125_save_meta_box($post_id) {
$post_type = get_post_type($post_id);
if ('product' != $post_type) {
return;
}
if (isset($_POST['wc_mobile_version_url'])) {
$mobile_version = $_POST['wc_mobile_version_url'];
update_post_meta($post_id, 'wc_mobile_version_url', $mobile_version);
}
}
add_action('save_post', 'wc_49570125_save_meta_box');
第5步:为Google添加可发现的链接
// redirect input field
function wc_49570125_mobile_redirect() {
global $product, $post;
if (is_product()) {
$get_id = $post->ID;
$amp_location = get_post_meta($get_id, 'wc_mobile_version_url', true);
if (wp_is_mobile() && $amp_location) {
wp_redirect($amp_location);
exit;
}
}
}
add_action('wp', 'wc_49570125_mobile_redirect');
我测试了上面的代码,看起来效果很好。