• WordPress笔记

    我发誓,绝对不能一个主题内容分好几百篇文章写,甚至专门隔出个分类,那样真的太麻烦了,显得太杂乱了,这篇文章,专门记录wordpress这个东西的一些笔记。

    内容大多为网络转载。不定时更新,加入,以后有问题也可以一篇文章里面查阅这样子

    屏蔽更新

    add_filter('pre_site_transient_update_core',    create_function('$a', "return null;")); // 关闭核心提示
    add_filter('pre_site_transient_update_plugins', create_function('$a', "return null;")); // 关闭插件提示
    add_filter('pre_site_transient_update_themes',  create_function('$a', "return null;")); // 关闭主题提示
    remove_action('admin_init', '_maybe_update_core');    // 禁止 WordPress 检查更新
    remove_action('admin_init', '_maybe_update_plugins'); // 禁止 WordPress 更新插件
    remove_action('admin_init', '_maybe_update_themes');  // 禁止 WordPress 更新主题

     

    有时候会用到一些插件,但插件老是提示更新,这很麻烦,因为也没必要更新,甚至可能越更新越麻烦,改动的地方也越来越多,所以,禁用掉。

     

    简单短代码

    /**
    此处引用两组短代码作为事例,定义字符分别为
    ss与ssd。编辑器内使用[字符]内容文本[/字符]使用不同自定义样式
    */
    function toz($atts, $content=null){
    return '<div class="short-show" data-mtpis="'.$content.'"><img src="https://taoxinhao.cn/wp-content/themes/simpo/img/icon/warning.png"></div>';
    }
    add_shortcode('ss','toz');
    
    function toa($atts, $content=null){
    return '<span class="ssd">'.$content.'</span>';   
    }    
    add_shortcode('ssd','toa');
    

    程序本身优化

    //禁用sw.org
    function remove_dns_prefetch( $hints, $relation_type ) {
    if ( 'dns-prefetch' === $relation_type ) {
    return array_diff( wp_dependencies_unique_hosts(), $hints );}
    return $hints;}
    add_filter( 'wp_resource_hints', 'remove_dns_prefetch', 10, 2 );
    // 去除可能加载的谷歌字体
    class Disable_Google_Fonts {
    public function __construct() {
    add_filter( 'gettext_with_context', array( $this, 'disable_open_sans' ), 888, 4 );}
    public function disable_open_sans( $translations, $text, $context, $domain ) {
    if ( 'Open Sans font: on or off' == $context && 'on' == $text ) {
    $translations = 'off';}
    return $translations;}}
    $disable_google_fonts = new Disable_Google_Fonts;

    另外一些功能

    /*使评论必须包含中文,否则无法发布(防垃圾评论) */  
    function refused_spam_comments( $comment_data ) {  
    $pattern = '/[一-龥]/u';  
    if(!preg_match($pattern,$comment_data['comment_content'])) {  
    wp_die('评论必须含中文!');  }  
    return( $comment_data );  }  
    add_filter('preprocess_comment','refused_spam_comments');
    
    
    /* 自动给页面的站外链接添加nofollow属性和新窗口打开*/
    add_filter( 'the_content', 'cn_nf_url_parse');
    function cn_nf_url_parse( $content ) {
    	$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>";
    	if(preg_match_all("/$regexp/siU", $content, $matches, PREG_SET_ORDER)) {
    		if( !empty($matches) ) 
    			$srcUrl = get_option('siteurl');
    			for ($i=0; $i < count($matches); $i++)
    			{$tag = $matches[$i][0];
    			$tag2 = $matches[$i][0];
    			$url = $matches[$i][0];
    			$noFollow = '';
    $pattern = '/target\s*=\s*"\s*_blank\s*"/';
    				preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);
    				if( count($match) < 1 )
    				$noFollow .= ' target="_blank" ';
    				$pattern = '/rel\s*=\s*"\s*[n|d]ofollow\s*"/';
    				preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);
    				if( count($match) < 1 ) $noFollow .= ' rel="nofollow" '; $pos = strpos($url,$srcUrl); if ($pos === false) { $tag = rtrim ($tag,'>');
    					$tag .= $noFollow.'>';
    					$content = str_replace($tag2,$tag,$content);}}}}
     
    	$content = str_replace(']]>', ']]>', $content);
    	return $content;}
    /* 自动给页面的站外链接添加nofollow属性和新窗口打开*/
    remove_filter('pre_term_description', 'wp_filter_kses');
    remove_filter('term_description', 'wp_kses_data');
    
    撰记时间:07/24 星期三
  • 返回顶部
    查看评论 7

    WordPress笔记》上有 7 条评论

    Loading...
    1. 偶抒漫话

      原来如此。wp最近更新蛮多的,变化蛮大的。据说马上最新版的都快不适配PHP7以下的版本了,每更新一次就要折腾一阵子也蛮烦的。据说蛮多wp网站都用的是老版本。

      1. 陶心昊 作者

        @偶抒漫话 一般是不会的,因为我大多只在主题里用hook控制修改wordpress程序后台,即便更新了程序本体,一般修改依旧会生效,不会被覆盖,除非程序本身的更新内容有特别大的改动,比如更新后放弃了原来的某些函数,基本不会有问题,然后我一般用一个版本程序,没啥安全问题也就不更新了,感觉变化不大,我个人需求也不多,对t他们更新的内容需求不大,整体算起来,最终会选择不更新

    评论发布器

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注