WordPress多站点自动同步发布文章

WordPress可以利用自建API在不同站点间自动同步发布文章,支持同步主站的文章标题、内容、类型、分类、标签等到备站,分类需要在备站也有创建相同名称的分类。
首先,在备站的根目录下创建post.php文件,文件代码如下:

<?php
//文章接收
define('WP_USE_THEMES', false);
require_once("wp-load.php");
$key='123456'; //设置启动API的密钥
if($_POST['key']==$key){  
    $categorys=explode(',',$_POST['category']);  
    $category=array();  
    for($x=1;$x<count($categorys);$x++) {  
     $category[$x-1]=get_cat_ID($categorys[$x]);  
    }  
    $info = array(  
    'post_title' => $_POST['title'],  
    'post_content' => $_POST['content'],  
    'post_status' => 'publish',  
    'post_author' => 1, //发布文章的作者ID,1 为管理员  
    'post_date' => $_POST['date'],  
    'tags_input' => $_POST['tags'],  
    'post_category' => $category,  
    'post_type' => $_POST['type']  
    );  
    wp_insert_post( $info );  }

然后在主站当前主题的functions.php文件中添加以下代码:

//文章推送
add_action('publish_post', 'fanly_sync_post'); //钩子,在文章发布时执行  
function fanly_sync_post($post_ID) {  
    $key='123456'; //输入你上一步设置的密钥  
    $url='https://www.yourdomain.com/post.php';//API地址,输入要接收数据的备站地址
    $post_info = get_post($post_ID);  
    if ( $post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish' ) {  
        $title=$_POST['post_title'];  
        $content=$_POST['content'];  
        $date=$_POST['aa'].'-'.$_POST['mm'].'-'.$_POST['jj'].' '.$_POST['hh'].':'.$_POST['mn'].':'.$_POST['ss'];  
        $category='';  
        for($x=1;$x<count($_POST['post_category']);$x++) {  
          $category.=','.get_cat_name($_POST['post_category'][$x]);  
        }  
        $type=$_POST['post_type'];  
        $tags=str_replace('、',',',$_POST['tax_input']['post_tag']);  
        if($_POST['newtag']['post_tag']){  
            $tags.=','.str_replace('、',',',$_POST['newtag']['post_tag']);  
        }  
        $data = 'key='.$key.'&title='.$title.'&content='.$content.'&date='.$date.'&category='.$category.'&type='.$type.'&tags='.$tags;  
        $ch = curl_init (); //cURL模拟POST  
        curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, TRUE );  
        curl_setopt ( $ch, CURLOPT_POST, TRUE );  
        curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );  
        curl_setopt ( $ch, CURLOPT_URL, $url );  
        curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, FALSE);  
        $ret = curl_exec ( $ch );  
        curl_close ( $ch );  
        return $ret;  
   }  
}

至此,在主站发布新文章时,备站也会自动同步主站的新文章了。
不过,如果后期你修改了主站的文章内容,备站是不会自动更新修改的,需要手动修改备站内容,主站文章下的评论,也不会同步到备站。

本文转载自:https://www.vpsso.com/450.html

https://www.doublog.com/?p=1779

wordpress非插件实现生成静态缓存文件,提速效率高达100%

在大量文章、评论以及插件的数据的情况下wordpress速度的确不敢恭维。豆子实在受不了,看看有没有不要插件来静态化缓wordpress。解决的办法。

 

< ?php
define('CACHE_ROOT', dirname(__FILE__).'/cache');
define('CACHE_LIFE', 86400);                   //缓存文件的生命期,单位秒,86400秒是一天
define('CACHE_SUFFIX','.html');             //缓存文件的扩展名,千万别用 .php .asp .jsp .pl 等等
      
$file_name  = md5($_SERVER['REQUEST_URI']).CACHE_SUFFIX;    //缓存文件名
      
//缓存目录,根据md5的前两位把缓存文件分散开。避免文件过多。如果有必要,可以用第三四位为名,再加一层目录。
//256个目录每个目录1000个文件的话,就是25万个页面。两层目录的话就是65536*1000=六千五百万。
//不要让单个目录多于1000,以免影响性能。
      
$cache_dir  = CACHE_ROOT.'/'.substr($file_name,0,2);
$cache_file = $cache_dir.'/'.$file_name;    //缓存文件存放路径
      
if($_SERVER['REQUEST_METHOD']=='GET'){      //GET方式请求才缓存,POST之后一般都希望看到最新的结果
    if(file_exists($cache_file) &amp;&amp; time() - filemtime($cache_file) &lt; CACHE_LIFE){ //如果缓存文件存在,并且没有过期,就把它读出来。 $fp = fopen($cache_file,'rb'); fpassthru($fp); fclose($fp); exit(); } elseif(!file_exists($cache_dir)){ if(!file_exists(CACHE_ROOT)){ mkdir(CACHE_ROOT,0777); chmod(CACHE_ROOT,0777); } mkdir($cache_dir,0777); chmod($cache_dir,0777); } function auto_cache($contents){ //回调函数,当程序结束时自动调用此函数 global $cache_file; $fp = fopen($cache_file,'wb'); fwrite($fp,$contents); fclose($fp); chmod($cache_file,0777); clean_old_cache(); //生成新缓存的同时,自动删除所有的老缓存。以节约空间。 return $contents; } function clean_old_cache(){ chdir(CACHE_ROOT); foreach (glob("*/*".CACHE_SUFFIX) as $file){ if(time()-filemtime($file)&gt;CACHE_LIFE){
               unlink($file);
           }
        }
    }
          
    ob_start('auto_cache');                 //回调函数 auto_cache
}
else{
    if(file_exists($cache_file)){           //file_exists() 函数检查文件或目录是否存在。
        unlink($cache_file);                //不是GET的请求就删除缓存文件。
    }
}
?>

将以上代码保存为cache.php文件然后放置到网站根目录,然后在根目录下目录下一个名为cache的目录,权限更改为777(写入缓存文件用的)

然后在根目录的index.php的<?php之后加上以下代码:

require('cache.php');

一定要保证缓存目录的可写性,一定要加到文件的最上方,不然等页面完全加载完了才吐出缓存页面那就等于没缓存一样。

https://www.doublog.com/?p=1739

豆博升级到wordpress最新版本了!

昨天豆子登录豆博的时候,发现wordpress发布了3.3的新版,豆子也想尝尝鲜,所以就把博客升级到最新版本了。发觉新版和3.2的版本基本类似,只是更改了一部分的功能而已。不过,操作起来更为方便了!

最近豆子确实有点忙,不过也真不晓得在忙些什么。反正就是忙。。上班,下班,上网,睡觉,吃饭……总之琐事总总,豆子都有点应接不暇的感觉了。最近的班也比较乱,基本都是在倒时差了。偶尔上上夜班,再上上白班,小日子也算是过的惬意吧?不过,豆子不免有些担忧。因为下个月的月初,豆子就要考试了,感觉这个学期豆子有点恼火!基本都是经济方面的学科,豆子对经济有点不太感冒的说。不过,没办法,豆子还是要咬牙坚持下去!

下个礼拜豆子要过生日了,请了几个朋友去吃食哥门的青蛙之类的火锅,是在网上拍的一张餐券,128块大洋呢!!说真的,豆子也从未好好的过过一次生日,这次就当豆子奢侈一次吧!!预祝豆子生日快乐吧!!哈哈~开玩笑的。

昨天也和兄弟一起购买了ds的新vps一台,暂时打算做淘客网站。兄弟也是这样想的,毕竟域名空着也是空着,做个淘客也许还可以赚点小钱,最不济,也可以把域名就这么挂着,不那么浪费罢了!另外豆子也新做了一个英文版的优惠码发布站点,程序也是用的wordpress最新版的,风格是国外的一个商业主题(当然是那个神马,你懂的!),有要找寻优惠码的童鞋可以前去围观!http://www.so-8.com 中文版是合租迷的官网:http://www.hezu.me 希望大家多多捧场哦!

今天给豆博开通了邮局功能~

豆子今天确实够闲的,闲的居然把豆博的主米拿去开了个企业邮局。准备拿来做主邮了。用的是谷歌提供的企业邮局功能,用户封顶为3万。其实要那么多用户名额对豆子来说根本没太大用处。毕竟豆子不是神马名人,也不是神马企业公司,只是个私人用的而已。只不过当时申请的企业邮局就这个还可以绑定其他域名了。现在谷歌邮局申请免费账户的话也只有10个名额了,虽然豆子有其他手段让用户名额是“无限”的,但是其实并无太大意义。所以,豆子就捡个现成的拿来用了。

最近几天豆子的身体抱恙,所以没怎么更新博客,而且博客的排名确实也太不堪入目了。上次查询的时候是全球alexa排名1000万以后了,这次查询好像稍微有点进步。本来打算申请个广告来玩的,可惜别人要求排名要在150w内,度娘权重正常的站才可以申请,豆子达不到要求,所以就暂时放弃咯。其实申请广告也是为了做其他网站的广告,豆博暂时不打算放置任何广告。因为豆博不是神马技术博客,也不是神马资源博客,只是豆子闲来无事写点私人记事的玩意儿罢了。访问的人数本来就不是很理想,所以放置广告只会让豆子在自己的心理感觉自己浑身沾满了铜臭!由此,豆博暂时是不打算放置广告的,除非豆子有天不打算再写私人博,不打算再写属于自己的私人记事了,那个时候也许会放广告也不一定。毕竟老老实实写点东西并不容易,豆子很珍惜这个机会。每个月虽然都要给vps续费,4美元的价格说多不多,说少也不少。当然,针对某些人来讲,其实还是很便宜的。每个月少抽两包烟,少吃点零食类的话,就可以节约出来了一个vps的费用了。为了写博,豆子其实也付出了很多努力,也付出了金钱的。所以豆子一直很珍惜这个机会。虽然豆子也有免费空间,也有免费玉米,但是豆子为了写博,宁愿拿收费米收费空间来写,这个也说明了豆子是真心想写博的,真心想记录一些生活琐事的。。所以,请不要打击豆子,不要让豆子难过,好么?

有点扯远了,说到豆博开通了企业邮局的功能了,有想要个性信箱的豆友可以发邮件到 索取。登录地址使用短地址的话,就是:http://goo.gl/2gf7e

感觉豆子啰嗦了点是吧?那豆子就先闪了……