タグ別アーカイブ: WordPress

JS,CSS,HTMLコードを圧縮してページロード時間を短縮する「WP Minify」

最近試してみたWordPressプラグイン「WP Minify」。
JS,CSS,HTML(選択式)のコードを圧縮して、ページロードの時間を短縮してくれるスグレモノ。
似たようなプラグインに「Head cleaner」がありますが、それよりウンと安全に運用できます。
APC・OPCache・memcached等、オブジェクトキャッシュエンジンを使えないレン鯖での運用では効果が大きいですぜb

あと過去に書いたWordPress高速化ネタをちらほら
WordPressをオブジェクトキャッシュで高速化
極力簡単な方法で、Webページの読み込み速度を向上させる

WP Minify

WordPressでメール投稿が出来るプラグイン「Postie」

ありました、php7環境下でもWordPressでメール投稿を実現するプラグインが。
その名もPostie
今まではガラケー時代に生まれたktai_entryを使ってメール投稿に対応していた方が多かったと思いますが、こちらは(WordPressのメール投稿設定こそ使わないものの)プラグイン独自のメール設定の他、メールから投稿に変換する際の挙動、メディア・添付ファイルの埋め込み等細かい設定が出来ます。

WordPress 4.3 リリース

初心者に更に易しい作りになりましたよ!
特に、テキスト入力時のショートカットが便利になりましたw

そういえば、開発者の皆さんがRC公開時に「やりきった」と仰っていた経緯から、システム面でもかなり堅牢になったんじゃないだろうか。

https://ja.wordpress.org/2015/08/19/billie/

WordPress歴10年

WordPressは2.0のころからずっと使っています。

猿10年前、私は某MMOの個人サイトを自宅サーバで運営していました。
HTMLもスクリプトも全て手書きで、デザインにも凝っていましたw
然し、まだWeb開発の世界にどっぷり浸かっていたわけではなかったので
CMSやAPIに関する知識はあまりなかったのです。
(CMSに至っては、MovableType、XOOPS、OpenPNEしか弄れなかった)

当時、そのMMOの括りで人気サイトを運営していたエンジニアさんのブログが面白くて毎日見たいたのです。
ある日、彼に「このブログどうやって作ったの?」と聞くと「WordPressだよ」と返ってきたので、そのWordPressなるものを調べてみました。そこで行き着いたのが「WordPress ME 2.0」です。
当時はまだWordPress公式の日本語版は存在せず、私が最初にインストールしたWordPress MEは有志を募って日本語特化された代物でした。

早速自宅サーバにインストールし、ガチャガチャ動かしてみたのです。
・レンタルブログ以上に高機能
・WYSIWYGエディタが使いやすい+拡張すればphpコードも挿入出来る
・テンプレートやプラグインが豊富で、しかも管理画面上でカスタマイズできる
・メール投稿が出来る
・ウィジェット(サイドカラム)を動的に組み替えられる
→その後、メニューやテーマテンプレートも動的カスタム出来るようになった

・・・何これ、すげー面白いんですけどwww
LAMPってここまで高機能なモン作れるんだな!!

それから私はWordPress厨になり、上京してLAMPデベロッパになりましたとさ。
これからも宜しく、WordPress。

WordPressを指定時間中メンテナンスモードに移行させる外部phpスクリプト

何年だか前に、WordPressを指定時間中メンテナンスモードにしたいって質問があったので、スクリプトを作ってあげた事がある。
WordPressのメンテナンスモードの仕組みとしては、ルートディレクトリに「.maintenance」というタイムスタンプが記述されたファイルを作り
このファイルが存在する限り、WordPressの一切の操作が効かなくなる。
なので、管理画面上のアップデートモジュール以外でこれを操作するには、当時の私にしては難しく
ヘタしたらWordPress本体のバージョンアップデートの際面倒になるだろうという危惧もあった。
苦肉の策として取ったのが、index.phpに独自クラスとしてニーズ通りの動作をさせるクラスメソッドを埋め込む方法だった。

1.WordPressのルートディレクトリ上に、下記phpスクリプトをセットする
※ソース最下部に設定方法の記述あり

/path/to/wordpress/maintenance_schejule.php
<?php
// 指定時間内をメンテナンス中にするクラス
class Maintenance_schejule
{
		//メンテナンスモード開始時刻+終了時刻を定義する為のメソッド引数
		public $switch;
		public $start;
		public $end;
		// 年月日、開始終了時刻のフォーマット用変数
		private $this->time  = time();
		private $this->date  = date("Y/m/d") . " ";
		private $this->start_time;
		private $this->end_time;
	// 実際にWPをメンテナンスモードに移行するメソッド
	function set_maintenance_mode($switch == 0, $start, $end)
	{
		// 第一引数が何もない場合、メンテナンスモードに移行しない
		if (empty($switch)!==FALSE)
		{
			return false;
		}
		// 開始時刻と終了時刻のフォーマットをチェック、間違っていたらエラーを吐き出して強制終了
		if (preg_match("/^([0-9]{1,2})\:([0-9]{1,2})$/",$start,$this->start_time->fmt)===FALSE)
		{
			exit("Start time format was different.");
		}
		else if (preg_match("/^([0-9]{1,2})\:([0-9]{1,2})$/",$end,$this->end_time->fmt)===FALSE)
		{
			exit("End time format was different.");
		}
		// 時と分の値が正しいかチェック
		if ((intval($this->start_time->fmt[1]) < 0) || (intval($this->start_time->fmt[1]) > 24))
		{
			exit("Set hour of start date to 00-24.");
		}
		else if ((intval($this->start_time->fmt[2]) < 0) || (intval($this->start_time->fmt[2]) > 59))
		{
			exit("Set minute of start date to 00-59.");
		}
		else if ((intval($this->end_time->fmt[1]) < 0) || (intval($this->end_time->fmt[1]) > 24))
		{
			exit("Set hour of end date to 00-24.");
		}
		else if ((intval($this->end_time->fmt[2]) < 0) || (intval($this->end_time->fmt[2]) > 59))
		{
			exit("Set minute of end date to 00-59.");
		}
		// 開始終了時刻のフォーマットを整える
		$this->start_time->tm = sprintf("%02d",$this->start_time->fmt[1]).":".sprintf("%02d",$this->start_time->fmt[2]);
		$this->end_time->tm   = sprintf("%02d",$this->end_time->fmt[1]).":".sprintf("%02d",$this->end_time->fmt[2]);
		// 開始終了時刻をUNIX時間に置換する
		$this->start_time->std = date("U", $this->date . $this->start_time->tm . ":00");
		$this->end_time->std   = date("U", $this->date . $this->end_time->tm . ":00");
		// セット時刻が日にちを跨ぐ場合、開始又は終了時刻を1日増減する
		if (($this->time > $this->start_time->std) && ($this->start_time->std >= $this->end_time->std))
		{
			$this->end_time->std += 24 * 60 * 60;
		}
		else if (($this->time < $this->start_time->std) && ($this->time < $this->end_time->std))
		{
			$this->start_time->std -= 24 * 60 * 60;
		}
		// メンテナンスモード指定時間内にアクセスされた場合、メンテナンスモードに強制移行し
		// 時間外ではメンテナンスモードを解除する
		if (($this->time >= $this->start_time->std) && ($this->time < $this->end_time->std))
		{
			if (file_exists("./.maintenance")===FALSE)
			{
				$fp = @fopen("./.maintenance","w");
				@fwrite($fp,"<?php $upgrading = time(); ?>");
				@fclose($fp);
			}
		}
		else
		{
			if (file_exists("./.maintenance")!==FALSE)
			{
				@unlink("./.maintenance");
			}
		}
	}
}
// 上記クラスを呼び出す
$maintenance_schejule = new Maintenance_schejule();
// メンテナンスモードスケジューリングを行うメソッドを叩く
// 引数1:この機能を使う場合は1、使わない場合は0をセットする
// 引数2:メンテナンスモード開始時間
// 引数3:メンテナンスモード終了時間
// 23:00~04:00といったように日にちをまたいでもOK
$maintenance_schejule->set_maintenance_mode(1, "00:00", "06:00");
?>

2.ルートディレクトリのindex.phpに上記クラスファイルをインクルードする
/path/to/wordpress/index.php

define('WP_USE_THEMES', true);
// ここらへんにクラスファイルをセットする
require_once("./maintenance_schejule.php");

WordPress4.1リリース

今日はWordPress4.1のリリース日です。
この時間帯ではまだ英語版でのリリースですが、日本語ローカライズ版も今日明日にはリリースされるでしょう。
WordPressでは基本的に古いバージョンをサポートしませんので、常に最新版を使うようにしましょう。
https://ja.wordpress.org/2014/12/19/wordpress-4-1-dinah/