コンテンツにスキップするには Enter キーを押してください

タグ: WordPress

SyntaxHighlighter Evolvedの不具合を直す方法

SyntaxHighlighter Evolvedにて、コードの改行にBRタグが混ざってしまったり一部の記号がHTMLエンティティとして再変換されてしまう問題を解決するためのTips。
この問題の原因としては、昨今WordPressに導入された新しいエディタ「Gutenberg」と衝突している可能性が高いです。使わないのであれば、これを無効化してください。

コメントする

ある意味、WordPressに対する冒涜だわ

自動でキーワードに沿った記事を自動生成してくれて、 すべての記事に合ったアフェリエイトリンクを自動生成してくれるのがWordPressなのでしょうか?

ネットビジネス超初心者あるあるすぎて逆に辛い。
「勉強しろ」と煽られる以前の問題。

その何。(上記の通り勘違いしたまま)WordPressひとつでネットビジネスを開拓するつもりで
「将来はテキサスでステーキハウスを建てるんだ」と豪語していた、かのおじさん。
ある日、スパムLPからDLしたフリーテンプレートを「これすごいぞ!無料でここまで出来るんだな!!」と言いまわった結果

「ご退会願いたい」の一言で沈没した、かのおじさん。

作ってあげるから、開発費ウン百万振り込んでくれ^^
ナーニ、これで何倍も稼げるんだからお手頃価格さね^^

コメントする

WordPressがWeb全体の30%で使われるようになりましたとさ

過去15年間、WordPress の人気と利用率は着実に増加し続けてきました。今月、W3Techs が WordPress が Web 上のサイトの30%以上を占めると報告したことで、その成長は大きなマイルストーンを迎えました。
この割合は W3Techs が Web 上のトップ1000万サイトを審査した結果に基づいて決定されており、WordPress のプラットフォームとしての人気と柔軟性の強力な指標となっています。
WordPress をさらに成長させるために手助けをしたい方は、参加・貢献 (日本語コンテンツ) してみましょう。

WordPress の1ヶ月: 2018年3月

[amazon_link asins=’4295000795,4774187062,4774173800′ template=’SupportedAMP’ store=’10yendama-22′ marketplace=’JP’ link_id=’70b90404-432e-11e8-b8cb-ef02436bd3a4′]

コメントする

WordPressを高速化する方法

WordPressをシンプル且つ効率的に高速化する方法がありますよ!

手始めに、オブジェクトキャッシュ系(サーバ側で実装済みなら尚不要)以外のページ高速化プラグインを全て削除してください。
HTTPS系プラグインも不要です。(.htaccessで頑張れ)

最適化プラグインをたくさん入れるのは大間違い。

では順を追って作業を進めていきましょうΣd(ゝω・)

1.GZip圧縮を活用

以下を.htaccessのRewriteルールの上あたりに記述。

# phpのzlibロード圧縮を有効にする
php_flag zlib.output_compression on

# Proxyサーバがファイルのキャッシュをしない設定
<IfModule mod_headers.c>
Header append Vary User-Agent env=!dont-vary
</IfModule>

# GZip圧縮化
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI _\.utxt$ no-gzip
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
</IfModule>

2.mod_expiresを使ったブラウザキャッシュでファイル読み込みの高速化

以下を.htaccessのGzip圧縮設定直下に記述。

# WebフォントをWeb上で読めるようにする
AddType application/vnd.ms-fontobject .eot
AddType application/x-font-ttf .ttf
AddType application/x-font-opentype .otf
AddType application/x-font-woff .woff
AddType image/svg+xml .svg

# 各ファイルのブラウサキャッシュ有効化
<ifModule mod_expires.c>
	ExpiresActive On
	#ExpiresDefault "access plus 1 seconds"
	#ExpiresByType text/html "access plus 1 seconds"
	ExpiresByType text/css "access plus 1 days"
	ExpiresByType text/javascript "access plus 1 weeks"
	ExpiresByType image/gif "access plus 1 weeks"
	ExpiresByType image/jpeg "access plus 1 weeks"
	ExpiresByType image/png "access plus 1 weeks"
	ExpiresByType image/x-icon "access plus 1 weeks"
	ExpiresByType application/pdf "access plus 1 weeks"
	ExpiresByType application/javascript "access plus 1 weeks"
	ExpiresByType application/x-javascript "access plus 1 weeks"
	ExpiresByType application/x-shockwave-flash "access plus 216000 seconds"
	ExpiresByType video/ogg "access plus 1 month"
	ExpiresByType video/mp4 "access plus 1 month"
	ExpiresByType video/webm "access plus 1 month"
	ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
	ExpiresByType application/x-font-ttf "access plus 1 year"
	ExpiresByType application/x-font-opentype "access plus 1 year"
	ExpiresByType application/x-font-woff "access plus 1 year"
	ExpiresByType image/svg+xml "access plus 1 year"
</ifModule>

3.たったひとつのWordPressプラグインで一発カンタン!HTMLソースの短縮化

1.WP管理画面→プラグイン→新規追加から、Autoptimizeをインストールし最適化

2.設定→高度な設定に切り替える

3.HTMLコードを最適化→ON
JavaScriptコードの最適化→ON
インラインのJSを連結→ON
CSSコードを最適化→ON
データを生成:画像をURI化→ON
Googleフォントの削除 →ON
インラインのCSSを連結→ON

4.WP管理画面→プラグイン→新規追加→WP-Optimizeをインストールし最適化→定期的にDBのゴミを取り除く

4.画像をまとめて最適化

1.WP管理画面→プラグイン→新規追加→EWWW Image Optimizerをインストール→有効

2.すべての画像をロスレス圧縮

5.AMP

そもそもAMPって何?
→Googleが提唱している、モバイルページを高速に表示させるための手法で、これが適用されているとGoogleでの検索結果がグンと上がります。
テーマによってはGoogleSearchConsoleに怒られてしまう可能性がありますので、その場合は適宜プラグインを検索したりテーマを見直してみましょう。

6.オブジェクトキャッシュのススメ

・phpのバージョンを7.0以上にする
・サーバがphp5.6以上なら、OPCacheを導入。phpの中間コードを物理メモリにキャッシュしてくれるので速くなりますよ!
・デフォルトのセッションエンジンをmemcachedに切り替える
・MySQL(MariaDB)のチューニング
・可能であれば、WebサーバをHTTP/2に対応させる(要SSLキー、Let’s Encryptとか)

コメントする

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

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

コメントする

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スクリプトをセットする
※ソース最下部に設定方法の記述あり

[code language=”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");
?>
[/code]

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

[code language=”php”]
define(‘WP_USE_THEMES’, true);
// ここらへんにクラスファイルをセットする
require_once("./maintenance_schejule.php");
[/code]

[amazon_link asins=’4873117062′ template=’SupportedAMP’ store=’10yendama-22′ marketplace=’JP’ link_id=’6a76d476-271c-11e8-8c4c-e9cb883bc648′]

コメントする

WordPressプラグイン「GZIP Output」に注意

WordPressプラグイン「GZIP Output」は、WebページのGZIP圧縮転送を自動で行ってくれるプラグインですが
.htaccess等でファイルにGZIP圧縮を適用していれば、不要のモノ。
(しかもこのプラグイン自体が大分古いし)
ちなみにこれを入れていると、プラグインのインストールや更新の際に画面遷移が止まってしまうので注意。

コメントする

WordPress HTMLソース最適化プラグイン「Head Cleaner」で下手こいた

WordPress製サイトのソースを最適化しようとして、Head Cleanerを導入。
JSとCSSキャッシュ化や縮小化をしようとすると、記事や固定ページ内のJS,CSSソースまで纏めてしまうため、一部ページで動作の不具合が発生した。
しかもこのプラグインのせいで、Jetpackの「メールで記事を投稿する機能」も動作しなくなってしまった。
(Jetpackの再起動で直ったからいいけど)

Head Cleanerは設定を綿密にやればデキるプラグインですが、これは超手厳しいコーダじゃないと使ったらアカン。
安易に手を出したら、泣きを見ますぜ・・・。

今はHTMLソース中にJavaScriptが散乱していますが、そこ以外でのリマークアップで各々の記事が検索上位に上がるかどうか様子を見てみます・・・(`;ω;´)

[amazon_link asins=’4873115736,4774144665′ template=’SupportedAMP’ store=’10yendama-22′ marketplace=’JP’ link_id=’65af95d3-2721-11e8-930d-3b8dd1673583′]

コメントする

アフィリエイト広告の導入実験

私自身はアフィリエイトに興味がなかったのですが、先日クライアントが
「サイトの維持費になるんだったら、アフィリエイトをやってみたい」と言うので
そのクライアントから請けた案件もWordPressで開発をしていたものですから、とりあえずAmazonとAdSenceの広告でやってみようか、ということになりました。
(その内、他の広告代理店のアフィリエイトプログラムも試してみよう)

そこで今、このサイトを実験台にAmazonとAdSenceの広告を載っけています。
・Amazon:
プラグイン「AmazonJS」をインストール
→Amazonアソシエイトプログラムに登録し、トラッキングIDを作成する
→Amazon Web Serviceに登録し、アフィリエイトID・APIキー・シークレットキーを取得
→上記プラグイン設定画面で入力事項を記入し、反映
→投稿画面にAmazonの検索フォームが出てくるので、そこから検索用のモーダルウィンドウを表示
→検索結果から商品を選び、画像サイズやレイアウトを指定し、ショートコードとして投稿に埋め込む

・AdSence(登録していること前提):
最近のWordPressテーマでは大抵Adsenseタグに対応

わお、カンタンに出来ちゃった。
昔のWordPressのアフィリエイト広告は、カスタムテンプレートにJavaScriptソースを改造したりして埋め込んでいたものだが
今は全て管理画面で完結してしまう。
すごい時代になったものだ、WordPress万歳!!

[amazon_link asins=’4798040223′ template=’SupportedAMP’ store=’10yendama-22′ marketplace=’JP’ link_id=’6fa8fdac-2721-11e8-a9d5-0993c77fecb1′]

1件のコメント

WordPressは良く出来たCMS

WordPress案件は手に余るほどこなしてきましたが、このCMSはやっぱすごい。
昔からカスタムやシステム導入に易しい造りですが、最近になってまたグングン進化しまくっている。
今では、標準機能でスマホからサイト管理が出来ちゃうんだもの。
キャッシュ化をしっかりしてあげれば、安いレンタルサーバでも十分にサクサク動くし
運用コストの算定さえしっかりしていれば、サーバ会社からスペック負荷で怒られることも滅多にないでしょう。
いやあ、MovableTypeは酷かったw
使いにくいわ、運用上CPANモジュールをいっぱい要求されるわ、拡張したら管理画面が壊れるわ、その拡張プラグインもアレなのが多いわ。
まあここらへんは、普及数がものを言っています。
WordPress信者では御座いませんが、今一番仕事で使いやすいCMSなのは確かです。
トラブルの多い子は正直使いたくありません(`;ω;´)

[amazon_link asins=’4798052817′ template=’SupportedAMP’ store=’10yendama-22′ marketplace=’JP’ link_id=’238bb674-2722-11e8-a2af-af37f065d991′]

コメントする