初果实验室

  • 如何给WordPress网站添加Javascript代码

    直接修改主题文件,主题一升级,代码就没有了。

    其实可以通过插件来引入Javascript代码。

    WordPress提供了函数 wp_enqueue_script 和钩子 wp_enqueue_scripts 。

    以方便开发者管理Javascript代码。

    添加的方法步骤:

    在插件目录下新建一个目录,进入目录后新建一个插件文件index.php,插入如下示例代码:

    <?php
    /*
    Plugin Name: custom javascript
    Description: Add custom javascript
    */
    function add_custom_scripts() {
    wp_enqueue_script( 'jquery-ui', 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js', array(), '1.12.1', false);
    }
    add_action( 'wp_enqueue_scripts', 'add_custom_scripts' );

    wp_enqueue_script 函数五个参数说明

    1. string $handle #对当前引入的javascript文件的代号

    2. string $src = ” #javascript代码资源url

    3. array $deps = array() #依赖得代码,就是参数1中handle的值

    4. string|bool|null $ver = false #版本号,如果未指定,与WordPress系统版本号一致

    5. bool $in_footer = false #是否在文档底部,如果是false,则默认在文档头部就载入

    最后保存文件,去插件中心激活插件,在浏览器页面查看页面源代码,就可以看到引入的 javascript 文件了。

    使用 wp_enqueue_script 函数有以下优点:

    a. 可以设定与其他依赖代码的载入次序

    b. 可以指定版本号利于让客户端的缓存失效

    c. 可以指定嵌入代码在文档的位置

    另外还有一个函数 wp_script_add_data

    这个函数用来给你添加的javascript文件设定metadata

    例如,添加下面的谷歌广告的代码:

    <script data-ad-client="pub-123456789" async src="https://pagead2.googlesyndication
    .com/pagead/js/adsbygoogle.js"></script>

    应该按如下的方式来添加

    <?php
    
    wp_enqueue_script( 'google_adsense', 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js', array(), false, false);
    
    wp_script_add_data( 'google_adsense', 'data-ad-client', 'pub-123456789' );

    参数说明:

    wp_script_add_data( string $handle, string $key, mixed $value )

    1> handle wp_enqueue_script函数定义的值

    2> key  script标签的meta key

    3> value script标签的meta value

    参考资料
    https://developer.wordpress.org/reference/functions/wp_enqueue_script/
    https://developer.wordpress.org/reference/functions/wp_script_add_data/

  • 使用TinyMCE增强WordPress编辑器功能

    尽管目前WordPress默认的编辑器是Gutenberg,但是很多人还是习惯经典编辑器。

    TinyMCE是一款开源的、多功能的、羽量级的、易用的、所见即所得编辑器,浏览器端部署,被业界广泛使用。同样,WordPress也可以轻松集成TinyMCE的出色功能:创建表格多选项的列表查找和替换设置字体集和字体大小和颜色,撤销操作等功能。

    原始编辑器

    安装TinyMCE Advanced插件后的编辑器

    插件下载地址:https://wordpress.org/plugins/tinymce-advanced/

    TinyMCE兼容Gutenberg编辑器。

  • phpMyAdmin免输入密码登录

    通过将MySQL的用户名和密码存储在 phpMyAdmin 的配置文件中,

    就可以快捷登录 phpMyAdmin

    免除输入密码的步骤,

    当然最好是部署在内网,

    否则将存在很大安全隐患。

    配置步骤

    1> 复制 config.sample.inc.php 为 config.inc.php

    2> 修改代码示例:

    /**
     * Second server
     */
    $i++;
    /* Authentication type */
    $cfg['Servers'][$i]['auth_type'] = 'config';
    /* Server parameters */
    $cfg['Servers'][$i]['host'] = 'localhost';
    $cfg['Servers'][$i]['user'] = '';
    $cfg['Servers'][$i]['password'] = '';
    $cfg['Servers'][$i]['compress'] = false;
    $cfg['Servers'][$i]['AllowNoPassword'] = false;

    其中 auth_type 由原来的 cookie 修改为 config

    第9行和10行增加了 user 和 password 的配置

    将用户名和密码写入代码中

    在登陆界面选择服务器后点击执行

    无需填写用户名和密码就可以登录 phpMyAdmin 了

  • phpMyAdmin连接远程服务器配置

    phpMyAdmin登陆界面默认的MySQL服务器只有localhost

    如果想连接其他服务器上的MySQL

    此时只需要在config.inc.php中增加配置就可以了

    首先复制文件 config.sample.inc.php 为 config.inc.php

    然后找到下面的代码片段

     

    /**
     * First server
     */
    $i++;
    /* Authentication type */
    $cfg['Servers'][$i]['auth_type'] = 'cookie';
    /* Server parameters */
    $cfg['Servers'][$i]['host'] = 'localhost';
    $cfg['Servers'][$i]['compress'] = false;
    $cfg['Servers'][$i]['AllowNoPassword'] = false;

    复制为

    /**
     * Second server
     */
    $i++;
    /* Authentication type */
    $cfg['Servers'][$i]['auth_type'] = 'cookie';
    /* Server parameters */
    $cfg['Servers'][$i]['host'] = '192.168.1.11';
    $cfg['Servers'][$i]['compress'] = false;
    $cfg['Servers'][$i]['AllowNoPassword'] = false;

     

    注意第8行,新增加的数据库服务器地址为 192.168.1.11

    这样在登录界面就可以看到新增加的服务器了。

    操作视频

    https://www.bilibili.com/video/BV1Ji4y177xc/

  • 申请免费AWS关系数据库RDS

    亚马逊AWS(Amazon Web Services )免费提供关系数据库RDS服务,共计12个月每月750小时,但仅限较低配置和部分可用区。对于小规模开发测试是项不错的福利。

    相较自行搭建数据库服务,云数据库具有诸多优点,如更好的稳定性、自由扩展、多区域服务,灾备机制等,省去了许多运维工作。

    申请过程:https://www.bilibili.com/video/BV14v41167DZ/

  • 隐藏Linux的motd信息

    在刚登入Linux机器后,通常会展示一些系统相关信息motd(message of the day ),例如最后登录时间和IP,如果不想显示这些内容,可以在用户目录下建立一个.hushlogin文件即可。对于自定义motd内容暂不详述。

  • 基于Ubuntu 20.04 部署phpMyAdmin

    phpMyAdmin是一套优秀的基于WEB的MySQL数据库管理系统, 当需要编写SQL语言和数据库交互时,可以通过phpMyAdmin来替代完成工作,减少错误发生,提高生产效率。

    phpMyAdmin自身使用PHP语言开发,所以部署依赖PHP WEB环境,以下视频示范在全新的Ubuntu 20.04系统上部署PHP7.4/MySQL/Nginx/phpMyAdmin的过程。

    视频地址:

    https://www.bilibili.com/video/BV1Qk4y1B7jB/

    下面是操作执行命令的步骤:

    修改root 密码
    sudo passwd root
    
    切换到root用户
    su root
    
    apt update
    apt install nginx
    apt install mysql-server
    
    mysql
    修改root@localhost的密码
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'sqlpwd345';
    刷新权限
    flush privileges;
    quit
    
    apt install php7.4
    apt install php7.4-fpm
    apt install php7.4-curl
    apt install php7.4-mysql
    wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.zip
    apt install unzip
    unzip phpMyAdmin-5.0.2-all-languages.zip
    让nginx支持PHP脚本处理
    vim /etc/nginx/sites-available/default
    service php7.4-fpm start
    service nginx start
    service mysql start
  • 基于AWS EC2创建Ubuntu 20.04实例

    基于AWS EC2创建Ubuntu 20.04实例
    这个演示全部使用的是默认选项,适合作为学习使用
    需要注意的是:
    ubuntu系统默认的用户名是ubuntu,不是root
    如果实例是基于原生系统,又没有密钥的话,必须创建一个,否则无法登录
    如果实例是基于AMI,那么登录方式取决于AMI的设定,此时不一定需要创建密钥对
    密钥对不是免费的,每月收费1美金的保管费

  • 修改python flask ip和端口

    Python框架Flask开发阶段,默认的IP和端口是127.0.0.1:5000

    修改步骤

    https://www.bilibili.com/video/BV1X5411p7Zb

     

  • Python算术运算符

    Python算术运算符介绍

    完成基本的加减乘除四则运算,就需要使用算术运算符来实现。

    符号 描述 使用
    + a+b
    a-b
    * a*b
    ** 乘方 a**b
    / a/b
    // 地板除(忽略小数部分) a//b
    % a%b

    示例:

    a=2
    b=2
    print('Sum : ', a+b)
    print('Subtraction : ', a-b)
    print('Multiplication : ', a*b)
    print('Division (float) : ', a/b)
    print('Division (floor) : ', a//b)
    print('Modulus : ', a%b)
    print('Exponent : ', a**b)

    输出结果:

    Sum : 7
    Subtraction : 1
    Multiplication : 12
    Division (float) : 1.3333333333333333
    Division (floor) : 1
    Modulus : 1
    Exponent : 64