月度归档: 2021 年 5 月

  • WordPress 开发中出现 Uncaught ReferenceError: jQuery is not defined TypeError: $ is not a function

    WordPress 开发中出现 Uncaught ReferenceError: jQuery is not defined TypeError: $ is not a function

    问题描述

    WordPress在主题、插件开发中,如果我们直接使用 ` $(‘#ID’) ` 这种写法就会报错:

    Uncaught ReferenceError: jQuery is not defined

    TypeError: $ is not a function

    解决方法

    jQuery(function($) { 
       // use $
    });

  • WordPress 搜索文章自定义字段 search artilce postmeta

    WordPress 搜索文章自定义字段 search artilce postmeta

    WordPress 插件开发中,有时需要检索文章对应的自定义字段postmeta,这里写一下相关的代码段

    $searchArgs = array(
        'post_type' => 'post',
        'meta_query' = array(
            'relation' => 'AND',
            array( 'key' => 'srch_age',   'value' => $_REQUEST['srch_age'] ),
            array( 'key' => 'srch_ptype', 'value' => $_REQUEST['srch_ptype'] )
            // ... Add as many other criteria as you need
        )
    );
    query_posts( $searchArgs );
    while( have_posts() ): the_post();
    ...
    endwhile;

    官方文档:https://developer.wordpress.org/reference/classes/wp_query/#custom-field-post-meta-parameters

  • WordPress 10w+数据时, 解决SQL_CALC_FOUND_ROWS查询搜索使网站变慢问题

    WordPress 10w+数据时, 解决SQL_CALC_FOUND_ROWS查询搜索使网站变慢问题

    一般来讲WordPress的文章数量达到一定量级时,运行速度就会变慢。网上看到的代码,记录一下解决SQL_CALC_FOUND_ROWS查询使网站变慢问题。

    <?php 
    /**
     * Plugin Name:  WP Fast Query
     * Plugin URI:   https://www.jiloc.com/
     * Description:  WordPress 10w+数据时, 解决SQL_CALC_FOUND_ROWS查询使网站变慢问题
     * Version:      1.0.0
     * Author:       Leo
     * Author URI:   https://www.jiloc.com/
     * Author Email: admin@jiloc.com
     * Text Domain:  wp-fast-query
     * Domain Path:  /languages
     * License:      GPL 2.0
     * License URI:  http://www.gnu.org/licenses/gpl-2.0.html
     */
    if ( ! function_exists( 'jset_no_found_rows' ) ) {
        /**
         * 设置WP_Query的 'no_found_rows' 属性为true,禁用SQL_CALC_FOUND_ROWS
         *
         * @param  WP_Query $wp_query WP_Query实例
         * @return void
         */
        function jset_no_found_rows(\WP_Query $wp_query)
        {
            $wp_query->set('no_found_rows', true);
        }
    }
    add_filter( 'pre_get_posts', 'jset_no_found_rows', 10, 1 );
    
    if ( ! function_exists( 'jset_found_posts' ) ) {
        /**
         * 使用 EXPLAIN 方式重构
         */
        function jset_found_posts($clauses, \WP_Query $wp_query)
        {
            // Don't proceed if it's a singular page.
            if ($wp_query->is_singular()) {
                return $clauses;
            }
            global $wpdb;
            $where = isset($clauses['where']) ? $clauses['where'] : '';
            $join = isset($clauses['join']) ? $clauses['join'] : '';
            $distinct = isset($clauses['distinct']) ? $clauses['distinct'] : '';
            $wp_query->found_posts = (int)$wpdb->get_row("EXPLAIN SELECT $distinct * FROM {$wpdb->posts} $join WHERE 1=1 $where")->rows;
            $posts_per_page = (!empty($wp_query->query_vars['posts_per_page']) ? absint($wp_query->query_vars['posts_per_page']) : absint(get_option('posts_per_page')));
            $wp_query->max_num_pages = ceil($wp_query->found_posts / $posts_per_page);
            return $clauses;
        }
    }
    add_filter( 'posts_clauses', 'jset_found_posts', 10, 2 );
  • 腾讯云QCloud轻量服务器LIGHTHOUSE测评

    腾讯云QCloud轻量服务器LIGHTHOUSE测评

    既然提到腾讯云的轻量服务器,这里手上有上海和北京轻量服务器,看看简单的性能测试。实际上在使用的时候,基本上没有多大的区别,轻量服务器也可以安装纯净版的镜像系统。不过我们需要注意的,如果我们在爆款活动促销的时候会看到Linux和Windows系统可能有时候不能同存的。

    轻量服务器在使用的时候也需要设置安全组,唯有在策略和界面上稍微不同,原理都是一样的。废话少说,我们看看腾讯云上海轻量应用服务器的速度和性能如何。

    如果我们需要购买轻量服务器可以看看下面最新活动。 腾讯云 全球云服务器活动新上线

    PING速度延迟情况

    这里简单的测试下国内节点的PING速度,这个速度肯定没问题的,毕竟是上海机房。

    区域最快/最慢平均
    全网上海(腾讯云-轻量) 0.3ms/巴西圣保罗(ZENLAYER-SAO2) 439.7ms149.9ms
    移动江苏镇江(移动) 11.3ms/云南昆明(移动) 56.4ms31.8ms
    联通安徽滁州(电信2) 10.3ms/辽宁沈阳(联通-云端1) 38.8ms23.7ms
    电信江苏常州(电信) 8.4ms/吉林长春(天翼云) 47.6ms23.4ms
    华南广东广州(青云) 32.1ms / 广西南宁(天翼云) 41.1ms35.2ms
    华北山西太原(天翼云) 26.9ms / 内蒙古呼和浩特(蓝视云) 30.7ms29.2ms
    华东上海(腾讯云-轻量) 0.3ms / 山东青岛(天翼云) 23.3ms11.3ms
    华中湖北武汉(天翼云) 17.6ms / 河南许昌 24.7ms21.1ms
    东北辽宁沈阳(联通-云端2) 33.1ms / 吉林长春(铁通) 48.8ms42.1ms
    西北陕西西安(天翼云二区) 27.5ms / 陕西西安(天翼云二区) 27.5ms27.5ms
    西南贵州贵阳(华为云) 33.2ms / 云南昆明(移动) 56.4ms41.5ms
    港澳台香港(腾讯云-轻量) 33.2ms / 香港 229.3ms73.3ms
    亚洲日本东京(zndata) 49.0ms/越南河内市 397.9ms198.2ms
    欧洲法国巴黎 207.9ms/西班牙马拉加 326.2ms245.4ms
    非洲埃及开罗 285.4ms/埃及开罗 285.4ms285.4ms
    北美洲美国加利福尼亚州洛杉矶 133.1ms/美国本德(iwebfusion) 286.8ms198.4ms
    南美洲巴西圣保罗(softlayer) 389.7ms/巴西圣保罗(ZENLAYER-SAO2) 439.7ms409.4ms
    大洋洲澳大利亚悉尼(AMAZON-LIGHTSAIL) 243.9ms/澳大利亚悉尼 415.4ms341.5ms

    总之,相比云服务器而言,轻量服务器带宽是比较大,但是配置是固定的,不可以像云服务器可以自定义各个硬件配置。轻量服务器IP也不可以更换,云服务器是可以弹性设置。

  • 实现MySQL数据库备份和恢复导入 图文教程

    实现MySQL数据库备份和恢复导入 图文教程

    我们一般在备份数据库的时候,如果数据库体积比较小,直接用phpMyadmin工具备份一点问题都没有,同理如果数据比较小直接导入用这个也是可以的。但是如果数据库比较大的话,就不容易这样操作,会导致备份和恢复不全。那我们还是需要学点备份大数据库的办法。

    在这里,WordPress采集插件简单的记录常用的MySQL数据库备份和恢复还原的办法,不要说这些命令看不懂也不会,你要有这么大数据库的时候必须要学会的,否则还真没办法混。

    第一、命令备份数据库

    1、备份单站点数据库

    如果我们备份单个网站数据库的时候可以用到指定数据库名的办法。

    mysqldump -u数据库用户名 -p数据库密码 数据库名 > database_name.sql

    2、多个数据库备份

    mysqldump –databases database_onedatabase_two > two_databases.sql

    在上面的代码中,database_one是要备份的第一个数据库的名称,database_two是第二个的名称。

    3、备份所有数据库

    mysqldump –all-databases > all_databases.sql

    第二、恢复数据库

    mysql -u数据库用户名 -p数据库密码 数据库名 < 数据库文件名.sql

    我们需要针对某个数据库对应恢复。

  • HTML 禁止在手机浏览器中缩放

    HTML 禁止在手机浏览器中缩放

    在HTML的页面head中加入禁止缩放,代码如下:

    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />

  • highcharts去掉版权|去掉水印链接(右下角)

    highcharts去掉版权|去掉水印链接(右下角)

    前面我们有介绍一些highcharts图表的应用,这里记录一下如何去掉右下角highcharts.com的谁有链接

    禁用版权水印

    credits: {enabled: false}

    禁用导出模块

    exporting: {enabled:false}
  • php 多维数组 删除某个key键以及value值 代码实例

    php 多维数组 删除某个key键以及value值 代码实例

    在日常开发中,我们通常会遇到数组的操作。我们这里记录一下如何在一个多维不规则数组中,删除某个key键或value值。下面我们给出删除key键的函数方法。

        /**
         * 删除多维数组中指定key键以及value值
         * @param  array  $arr  数组
         * @param  string/int  $key  键(key)
         * @return array
         */
        function mulit_array_remove_by_key($arr, $key){
            $new_array = [];
            foreach($arr as $k => $v) {
                /* 判断当前元素的值是不是数组,是的话就递归下去,重复查找这个函数。 */
                if(is_array($v)) {
                    /* 使用新数组记录 */
                    $new_array[$k] = mulit_array_remove_by_key($v, $key);
                    continue;
                }elseif($k == $key) {
                    /* 找到元素后删除 */
                    unset($arr[$k]);
                    continue;
                }
                /* 没删除的继续保留下来存储在新数组 */
                $new_array[$k] = $arr[$k];
            }
            return $new_array;
        }

WeChat