没有插件的AMP版电子商务

时间:2018-03-30 07:19:32

标签: php wordpress woocommerce amp-html

我有一个电子商务网站的两个产品页面:一个用Woocommerce(在WordPress中)制作,另一个用AMP编写我的自我。

Here是WordPress页面,here是AMP页面。如果不考虑这两个页面位于两个不同的子域中,我如何将移动用户重定向到该页面的AMP版本?

提出了类似的问题,但它只指定了如何为简单的页面而不是产品页面执行此操作。

有谁知道怎么做?

1 个答案:

答案 0 :(得分:1)

要回答您的问题,如果您不想使用插件,则必须在主题functions.php中对以下行进行硬编码。

按照您的问题设置方法

  1. 在WooCommerce的产品发布类型中创建Metabox
  2. 将输入字段添加到Created Metabox
  3. 通过save_post action hook
  4. 保存输入字段
  5. 输入每个产品的特定网址
  6. 从产品中获取已保存的数据,如果是移动用户则重定向。
  7. 第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');
    

    我测试了上面的代码,看起来效果很好。