Shopify Free Trial Apply
Shopify 60天试用
Shopify 14天试用
WordPress

WordPress

WordPress建站及WordPress SEO相关话题
Shopify

Shopify

Shopify建站及Shopify SEO相关话题
Google SEO

Google SEO

Google SEO相关话题
SEM

SEM

SEM相关话题
SNS 社媒营销

SNS 社媒营销

讨论SNS社交媒体营销话题
Zoho

Zoho

Zoho SAAS相关产品使用话题讨论
EDM

EDM

讨论Email Marketing相关话题
隽永东方售后服务

隽永东方售后服务

隽永东方售后服务专区

zoho salesiq设置时候的一个注意点,设置错误会导致网站报错,影响加载

Leo 发表了文章 • 1 个评论 • 1024 次浏览 • 2018-12-05 09:14 • 来自相关话题

上图这个报错,就是因为在salesiq设置的时候,开启了公司logo功能,而并没有上传logo,这个要注意,发现不少用了salesiq的网站都有这个报错。
下图为其中一处关闭logo按钮的地方,总共有两处设置logo的地方,一个是浮动框,一个是内容框





  查看全部

4.png

上图这个报错,就是因为在salesiq设置的时候,开启了公司logo功能,而并没有上传logo,这个要注意,发现不少用了salesiq的网站都有这个报错。
下图为其中一处关闭logo按钮的地方,总共有两处设置logo的地方,一个是浮动框,一个是内容框
3.png


 

隽永东方教您如何通过设置WHM下的ModSecurity™ Tools来应对WordPress暴力登陆

East_Digi_Marketing 发表了文章 • 0 个评论 • 1196 次浏览 • 2018-12-02 11:47 • 来自相关话题

最新备注:有发现用此教程方法开启安全设定以后,WordPress正常登录也被挡掉了,后来研究发现是其中  949110: Inbound Anomaly Score Exceeded  这条规则挡掉的,我们尝试把ID号为949110的规则关闭掉,WordPress就可以正常登录后台了。

近期美国服务器频繁发现有大量的wp-login.php进程消耗服务器资源,经过简单分析发现类似的进程都是暴力登陆WP网站的垃圾进程,手工挨个关闭效率极低,根本无济于事,于是设想通过某些服务器的过滤规则来应对类似的CC攻击。
 
经过一段时间的研究得出如下方法,能最大程度的应对类似的暴力攻击。
 
登陆WHM后台,点击左侧的 Security Center » ModSecurity™ Tools » Edit Custom Rules 如下图:
 















 
第三张图所示的地方插入代码:SecUploadDir /tmp
SecTmpDir /tmp
SecDataDir /tmp
SecRequestBodyAccess On
SecAction phase:1,nolog,pass,initcol:ip=%{REMOTE_ADDR},initcol:user=%{REMOTE_ADDR},id:5000134
<Locationmatch "/wp-login.php">
# Setup brute force detection.
# React if block flag has been set.
SecRule user:bf_block "@gt 0" "deny,status:401,log,id:5000135,msg:'ip address blocked for 5 minutes, more than 10 login attempts in 3 minutes.'"
# Setup Tracking. On a successful login, a 302 redirect is performed, a 200 indicates login failed.
SecRule RESPONSE_STATUS "^302" "phase:5,t:none,nolog,pass,setvar:ip.bf_counter=0,id:5000136"
SecRule RESPONSE_STATUS "^200" "phase:5,chain,t:none,nolog,pass,setvar:ip.bf_counter=+1,deprecatevar:ip.bf_counter=1/180,id:5000137"
SecRule ip:bf_counter "@gt 10" "t:none,setvar:user.bf_block=1,expirevar:user.bf_block=300,setvar:ip.bf_counter=0"
</locationmatch>
ErrorDocument 401 default点击保存。
至此,您会发现,进程里边所有wp-login.php的进程都消失了,服务器负载也急速下降,问题fix了。 查看全部


最新备注:有发现用此教程方法开启安全设定以后,WordPress正常登录也被挡掉了,后来研究发现是其中  949110: Inbound Anomaly Score Exceeded  这条规则挡掉的,我们尝试把ID号为949110的规则关闭掉,WordPress就可以正常登录后台了。


近期美国服务器频繁发现有大量的wp-login.php进程消耗服务器资源,经过简单分析发现类似的进程都是暴力登陆WP网站的垃圾进程,手工挨个关闭效率极低,根本无济于事,于是设想通过某些服务器的过滤规则来应对类似的CC攻击。
 
经过一段时间的研究得出如下方法,能最大程度的应对类似的暴力攻击。
 
登陆WHM后台,点击左侧的 Security Center » ModSecurity™ Tools » Edit Custom Rules 如下图:
 

F1C1EE0FA511EA6D0853298A186BD8E9.png


C3B6C03D33B336A96E26485D0883B815.png


57EACD4C-262F-45D1-8BA9-C181A9AE9708.png

 
第三张图所示的地方插入代码:
SecUploadDir /tmp
SecTmpDir /tmp
SecDataDir /tmp
SecRequestBodyAccess On
SecAction phase:1,nolog,pass,initcol:ip=%{REMOTE_ADDR},initcol:user=%{REMOTE_ADDR},id:5000134
<Locationmatch "/wp-login.php">
# Setup brute force detection.
# React if block flag has been set.
SecRule user:bf_block "@gt 0" "deny,status:401,log,id:5000135,msg:'ip address blocked for 5 minutes, more than 10 login attempts in 3 minutes.'"
# Setup Tracking. On a successful login, a 302 redirect is performed, a 200 indicates login failed.
SecRule RESPONSE_STATUS "^302" "phase:5,t:none,nolog,pass,setvar:ip.bf_counter=0,id:5000136"
SecRule RESPONSE_STATUS "^200" "phase:5,chain,t:none,nolog,pass,setvar:ip.bf_counter=+1,deprecatevar:ip.bf_counter=1/180,id:5000137"
SecRule ip:bf_counter "@gt 10" "t:none,setvar:user.bf_block=1,expirevar:user.bf_block=300,setvar:ip.bf_counter=0"
</locationmatch>
ErrorDocument 401 default
点击保存。
至此,您会发现,进程里边所有wp-login.php的进程都消失了,服务器负载也急速下降,问题fix了。

在Woocommerce后台订单列表页面添加购买产品的详细信息

Bob 发表了文章 • 1 个评论 • 2018 次浏览 • 2018-11-29 17:13 • 来自相关话题

现在越来越多的用户开始使用woocommerce来搭建自己的电商网站,woocommerce插件的后台界面已经非常详细的列出了相关信息,但是如果想在订单列表页面添加用户所购买产品的详细信息,需要在主题跟目录下面的functions.php文件里面添加一下代码:
add_filter( 'manage_edit-shop_order_columns', 'show_product_order',15 );
function show_product_order($columns){

//添加一列信息
$columns['product-display'] = __( 'Central Pedder Building Gallery Tour');
return $columns;
}然后在当前这段代码的下面在添加一段代码:
add_action( 'manage_shop_order_posts_custom_column' , 'snv_custom_shop_order_column', 10, 2 );
function snv_custom_shop_order_column( $column ) {
global $post, $woocommerce, $the_order;

switch ( $column ) {
case 'product-display' :
$terms = $the_order->get_items();

if ( is_array( $terms ) ) {
foreach($terms as $term)
{
echo $term['item_meta']['_qty'][0] .' ' . $term['name'] .'';
}
} else {
_e( 'Error!', 'woocommerce' );
}
break;

}
}后台显示的效果如下图所示:




  查看全部
现在越来越多的用户开始使用woocommerce来搭建自己的电商网站,woocommerce插件的后台界面已经非常详细的列出了相关信息,但是如果想在订单列表页面添加用户所购买产品的详细信息,需要在主题跟目录下面的functions.php文件里面添加一下代码:
add_filter( 'manage_edit-shop_order_columns', 'show_product_order',15 );
function show_product_order($columns){

//添加一列信息
$columns['product-display'] = __( 'Central Pedder Building Gallery Tour');
return $columns;
}
然后在当前这段代码的下面在添加一段代码:
add_action( 'manage_shop_order_posts_custom_column' , 'snv_custom_shop_order_column', 10, 2 );
function snv_custom_shop_order_column( $column ) {
global $post, $woocommerce, $the_order;

switch ( $column ) {
case 'product-display' :
$terms = $the_order->get_items();

if ( is_array( $terms ) ) {
foreach($terms as $term)
{
echo $term['item_meta']['_qty'][0] .' ' . $term['name'] .'';
}
} else {
_e( 'Error!', 'woocommerce' );
}
break;

}
}
后台显示的效果如下图所示:
QQ图片20181129171311.png

 

WP Favorite Posts 的使用方法(可用于收藏文章、产品)

Leo 发表了文章 • 1 个评论 • 1120 次浏览 • 2018-11-28 10:10 • 来自相关话题

首先 WP Favorite Posts安装这个插件,




配置插件,最重要的是 Don't load js file这个选项要勾选,这样当你收藏这个产品的时候页面会自动刷新,列表就会更新。我之前试过不勾选这个选项,结果是我收藏了产品,但是列表没有更新(需要我手动去刷新页面)。
                <div class="favorite">
                    <?php wpfp_link() ?> //这是调用收藏按钮
                    <?php dynamic_sidebar( 'sidebar-4' ); ?> //这是这个插件在小工具widgets中提供的收藏列表功能,我这个小工具的id为sidebar-4
                </div>
 





 
具体效果如下图所示:










  查看全部
首先 WP Favorite Posts安装这个插件,
3.png

配置插件,最重要的是 Don't load js file这个选项要勾选,这样当你收藏这个产品的时候页面会自动刷新,列表就会更新。我之前试过不勾选这个选项,结果是我收藏了产品,但是列表没有更新(需要我手动去刷新页面)。
                <div class="favorite">
                    <?php wpfp_link() ?> //这是调用收藏按钮
                    <?php dynamic_sidebar( 'sidebar-4' ); ?> //这是这个插件在小工具widgets中提供的收藏列表功能,我这个小工具的id为sidebar-4
                </div>
 

4.png

 
具体效果如下图所示:

1.png


2.png

 

window.print()如何打印指定区域

Leo 发表了文章 • 2 个评论 • 1166 次浏览 • 2018-11-21 14:47 • 来自相关话题

@media print{
    .noprint{
        display: none;
    }
}
定义一个class,noprint
然后可以给你不想打印的地方加上noprint这个class,这样打印的时候就会隐藏这些elements。
一般我们可以给头部、底部加上这个class。
 
其实window.print()就是执行了浏览器自带的一个打印功能,让我们不用在浏览器上找打印,而直接通过点击网页上面任意一个已规定好的元素,进行打印。发现这种打印是没办法打印JavaScript以及多数css(有少部分css样式可以打印出来),只能就是打印一下图文 查看全部

@media print{
    .noprint{
        display: none;
    }
}
定义一个class,noprint
然后可以给你不想打印的地方加上noprint这个class,这样打印的时候就会隐藏这些elements。
一般我们可以给头部、底部加上这个class。
 
其实window.print()就是执行了浏览器自带的一个打印功能,让我们不用在浏览器上找打印,而直接通过点击网页上面任意一个已规定好的元素,进行打印。发现这种打印是没办法打印JavaScript以及多数css(有少部分css样式可以打印出来),只能就是打印一下图文

推荐两个lazy load 插件

Leo 发表了文章 • 1 个评论 • 959 次浏览 • 2018-11-21 10:19 • 来自相关话题

1、​a3 Lazy Load   (10W激活量,可放心使用)





 
2、Lazy Load by WP Rocket 作者WP Media  是wp-rockets开发团队开发的补丁插件,只需激活即可
 

经过测试,这两个插件在多数网站是没有问题的,具体根据不同网站实际情况使用。网站加载速度有肉眼可见的提升,不过在得分上面还是没有很明显的提升,因为谷歌对各项资源加载的要求是非常苛刻的,举例:一张1920px*500px的banner图,压缩至200kb不到,但是谷歌要求你还要减掉一半多的资源大小,这样肯定会严重影响图片清晰度。
谷歌page得分提升之路漫长,仍需努力! 查看全部
1、​a3 Lazy Load   (10W激活量,可放心使用)

1542765987(1).jpg

 
2、Lazy Load by WP Rocket 作者WP Media  是wp-rockets开发团队开发的补丁插件,只需激活即可
 

经过测试,这两个插件在多数网站是没有问题的,具体根据不同网站实际情况使用。网站加载速度有肉眼可见的提升,不过在得分上面还是没有很明显的提升,因为谷歌对各项资源加载的要求是非常苛刻的,举例:一张1920px*500px的banner图,压缩至200kb不到,但是谷歌要求你还要减掉一半多的资源大小,这样肯定会严重影响图片清晰度。
谷歌page得分提升之路漫长,仍需努力!

产品详情页可以用的放大镜效果

Leo 发表了文章 • 2 个评论 • 1005 次浏览 • 2018-11-16 13:49 • 来自相关话题

效果图:








 
/*引入资源*/
<link rel="stylesheet" href="css/smoothproducts.css">
<script src="js/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="js/smoothproducts.min.js"></script>
 /*html+php*/             
       <div class="sp-wrap">
                            <?php if( have_rows('image_gallery') ): ?>
                            <?php while( have_rows('image_gallery') ): the_row(); 
                                        $image = get_sub_field('add_img');
                                        $image_url = $image[url];
                            ?>
                            <a href="<?php echo $image_url ?>">
                                <img alt="<?php the_title();?>" src="<?php bloginfo('template_url')?>/timthumb.php?src=<?php echo $image_url ?>&w=400;&h=400;&zc=1" width="400" height="400" class="img-responsive"/>
                            </a>
                           <?php endwhile;endif;?>
                    </div>
 
/*jquery配置*/
<script type="text/javascript">
    /* wait for images to load */
    $(window).load(function() {
        $('.sp-wrap').smoothproducts();
    });
</script>
 
资源包下载:
看附件 查看全部
效果图:
2.png

1.png

 
/*引入资源*/
<link rel="stylesheet" href="css/smoothproducts.css">
<script src="js/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="js/smoothproducts.min.js"></script>
 /*html+php*/             
       <div class="sp-wrap">
                            <?php if( have_rows('image_gallery') ): ?>
                            <?php while( have_rows('image_gallery') ): the_row(); 
                                        $image = get_sub_field('add_img');
                                        $image_url = $image[url];
                            ?>
                            <a href="<?php echo $image_url ?>">
                                <img alt="<?php the_title();?>" src="<?php bloginfo('template_url')?>/timthumb.php?src=<?php echo $image_url ?>&w=400;&h=400;&zc=1" width="400" height="400" class="img-responsive"/>
                            </a>
                           <?php endwhile;endif;?>
                    </div>
 
/*jquery配置*/
<script type="text/javascript">
    /* wait for images to load */
    $(window).load(function() {
        $('.sp-wrap').smoothproducts();
    });
</script>
 
资源包下载:
看附件

利用bootstrap模态框做网站升级维护的提示消息框

Leo 发表了文章 • 1 个评论 • 1003 次浏览 • 2018-11-14 09:12 • 来自相关话题

 <link rel="stylesheet" href="/notification/css/bootstrap.min.css">
<script src="/notification/js/jquery.min.js"></script>          
<script src="/notification/js/bootstrap.min.js"></script>
  <!-- 模态框(Modal) -->
        <div class="modal fade" id="myModal" tabindex="-1" role="dialog"
             aria-labelledby="myModalLabel" aria-hidden="true">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close"
                                data-dismiss="modal" aria-hidden="true">
                            &times;
                        </button>
                        <h4 class="modal-title" id="myModalLabel">
                            Website is being upgraded and maintained
                        </h4>
                    </div>
                    <div class="modal-body">
                        We will resume normal access as soon as possible<br>
                        Expect one hour,Stay tuned<br>
                        <div id="show"></div>
                    </div>
                </div><!-- /.modal-content -->
            </div><!-- /.modal -->
        </div>
    <script>
         //加载模态框
         $('#myModal').modal();

        var show = document.getElementById("show");  
        setInterval(function() {   
        var time = new Date();   // 程序计时的月从0开始取值后+1   
        var m = time.getMonth() + 1;   
        var t = time.getFullYear() + "-" + m + "-"     
        + time.getDate() + " " + time.getHours() + ":"     
        + time.getMinutes() + ":" + time.getSeconds();   
        show.innerHTML = t;  
        }, 100); 

    </script>
<style>
/*模态框*/
.modal-body{
    font-size: 18px;
}
#show{
    font-size: 30px;
}
.modal-open{
    overflow-y: scroll;
    padding-right: 0 !important;
}
/*主要是最后一个css样式,是fix掉bootstrap模态框关闭时的抖动问题*/
</style> 查看全部
1.png

 <link rel="stylesheet" href="/notification/css/bootstrap.min.css">
<script src="/notification/js/jquery.min.js"></script>          
<script src="/notification/js/bootstrap.min.js"></script>
  <!-- 模态框(Modal) -->
        <div class="modal fade" id="myModal" tabindex="-1" role="dialog"
             aria-labelledby="myModalLabel" aria-hidden="true">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close"
                                data-dismiss="modal" aria-hidden="true">
                            &times;
                        </button>
                        <h4 class="modal-title" id="myModalLabel">
                            Website is being upgraded and maintained
                        </h4>
                    </div>
                    <div class="modal-body">
                        We will resume normal access as soon as possible<br>
                        Expect one hour,Stay tuned<br>
                        <div id="show"></div>
                    </div>
                </div><!-- /.modal-content -->
            </div><!-- /.modal -->
        </div>
    <script>
         //加载模态框
         $('#myModal').modal();

        var show = document.getElementById("show");  
        setInterval(function() {   
        var time = new Date();   // 程序计时的月从0开始取值后+1   
        var m = time.getMonth() + 1;   
        var t = time.getFullYear() + "-" + m + "-"     
        + time.getDate() + " " + time.getHours() + ":"     
        + time.getMinutes() + ":" + time.getSeconds();   
        show.innerHTML = t;  
        }, 100); 

    </script>
<style>
/*模态框*/
.modal-body{
    font-size: 18px;
}
#show{
    font-size: 30px;
}
.modal-open{
    overflow-y: scroll;
    padding-right: 0 !important;
}
/*主要是最后一个css样式,是fix掉bootstrap模态框关闭时的抖动问题*/
</style>

wordpress升级主程序、主题、插件时卡住

Leo 发表了文章 • 1 个评论 • 1147 次浏览 • 2018-11-12 16:01 • 来自相关话题

我们在对wordpress主程序、wordpress主题或者wordpress插件升级的时候,在升级过程自动安装中有时候会出现“正在执行例行维护,请一分钟后回来”的提示,一般在升级结束之后就会自动回复网站原样。

但是有时候会遇到卡住的情况,也就是前端一直会显示这个提示,并且后台刷新之后也显示这个提示,无法进行操作。

遇到这个问题我们应该如何解决呢?
 
通常的做法是 使用FTP或者其他方式登录你的网站目录,你会发现网站根目录下多了一个.maintenance 文件,那么删除WordPress根目录下的 .maintenance ,刷新即可恢复。

而有的时候,在某些服务器上,登陆FTP查看网站文件无法找到.maintenance 文件,这也有可能是卡住之后某些程序没有正常运行所造成的,因此你可以尝试在电脑上创建一个空的txt文件,并将此文件命名为.maintenance ,传到你的网站根目录下,刷新网站即可恢复正常,并且刷新ftp目录,也会发现这个文件自动消失了。 查看全部
我们在对wordpress主程序、wordpress主题或者wordpress插件升级的时候,在升级过程自动安装中有时候会出现“正在执行例行维护,请一分钟后回来”的提示,一般在升级结束之后就会自动回复网站原样。

但是有时候会遇到卡住的情况,也就是前端一直会显示这个提示,并且后台刷新之后也显示这个提示,无法进行操作。

遇到这个问题我们应该如何解决呢?
 
通常的做法是 使用FTP或者其他方式登录你的网站目录,你会发现网站根目录下多了一个.maintenance 文件,那么删除WordPress根目录下的 .maintenance ,刷新即可恢复。

而有的时候,在某些服务器上,登陆FTP查看网站文件无法找到.maintenance 文件,这也有可能是卡住之后某些程序没有正常运行所造成的,因此你可以尝试在电脑上创建一个空的txt文件,并将此文件命名为.maintenance ,传到你的网站根目录下,刷新网站即可恢复正常,并且刷新ftp目录,也会发现这个文件自动消失了。

cpanel 升级php版本的注意点

Leo 发表了文章 • 1 个评论 • 1175 次浏览 • 2018-11-09 15:37 • 来自相关话题

当我们从5.5、5.6这些旧版本php升级到7.0、7.1、7.2版本时,可能会发现一些php函数报错,这时候可以在cpanel面板的software 下面​EasyApache 4中开启一些对应的php拓展,这样就能解决对应的报错了。
 





 
 





  查看全部
当我们从5.5、5.6这些旧版本php升级到7.0、7.1、7.2版本时,可能会发现一些php函数报错,这时候可以在cpanel面板的software 下面​EasyApache 4中开启一些对应的php拓展,这样就能解决对应的报错了。
 

TIM图片20181109154927.png

 
 

TIM图片20181109155007.png