我正在尝试将我的站点的Cookie设置为点击操作按钮,当用户登录时,它正在工作。当用户注销时,它不工作

时间:2018-08-09 作者:Ravi Borasi
function cookiebasedredirect() {
?>
<script type="text/javascript">
    jQuery(document).on(\'click\', \'#organisation\', function(event){
      event.preventDefault();
      jQuery.cookie("site_changer", "organisation", { expires: 1 });
      window.location.href = window.location.href;
    });

    jQuery(document).on(\'click\', \'#young-professional\', function(event){
      event.preventDefault();
      jQuery.cookie("site_changer", "young-professional", { expires: 1 });
      window.location.href = window.location.href;
    });
  </script>
<?php

 }
 add_action("wp_head", "cookiebasedredirect");
1 个回复
SO网友:Iceable

您的脚本使用jQuery,因此您应该确保:

jQuery在您的站点上排队(可能是针对登录用户,尤其是管理员,但不一定是针对注销用户)

  • 您的脚本将jQuery作为依赖项添加,因此当您的脚本运行时,jQuery可用wp_add_inline_script() 为此,如下所示:

    function wpse310935_cookiebasedredirect() {
        ob_start();
        ?>
        jQuery(document).on(\'click\', \'#organisation\', function(event){
          event.preventDefault();
          jQuery.cookie("site_changer", "organisation", { expires: 1 });
          window.location.href = window.location.href;
        });
    
        jQuery(document).on(\'click\', \'#young-professional\', function(event){
          event.preventDefault();
          jQuery.cookie("site_changer", "young-professional", { expires: 1 });
          window.location.href = window.location.href;
        });
        <?php
        $my_js = ob_get_clean();
        if( ! wp_script_is( \'jquery\', \'enqueued\' ) ) {
            wp_enqueue_script( \'jquery\' );
        }
        wp_add_inline_script( \'jquery\', $my_js );
    }
    add_action( \'wp_enqueue_scripts\', \'wpse310935_cookiebasedredirect\' );
    

  • 结束

    相关推荐

    以jQuery中的特定页面/模板为目标

    我有一个带有固定顶栏的网站,上面显示着特定的徽标。我在jQuery中使用以下脚本在滚动若干像素后显示/隐藏徽标:<script> jQuery(document).scroll(function() { var y = jQuery(this).scrollTop(); if (y > 63) { jQuery(\'.top-bar-logo\').fadeIn(); } else { jQuery(\'.top-bar-logo\