(wordpress) Pz-LinkCardプラグイン から luxeritas blogcard へ移行

2018/03/27WordPress

他のサイトへのリンクを貼るときに、単なるリンク(<a href="…">)では味気ないので、カード形式で表示できる Pz-LinkCard というプラグインを使っていた。

機能は豊富だし、特に問題なく使っていたのだが、サイトの高速化を進めていくうちに速度が気になってきた。遅いと言っても数10msの単位なんだけど。



Pz-LinkCard の style.css は別ファイルから読み込まれるのでレンダリングブロックが発生する。プラグイン内部を見て高速化できないか考えたけどお手上げ。幸い、このサイトで使っている luxeritas というテーマには標準で blogcard 機能があるので、そちらに移行することにした。




形式の自動変更

移行といっても、記述形式が異なるので単純移行はできない。できるならテーマ変更時に処理している。DB内部をSQLで書き換えてもいいのだけど、作業ミスが怖い。将来別のプラグインやテーマに移行するときに、再度移行作業するのも面倒だ。

ということで、functions.php に下記のように書いて Pz-LinkCard から luxeritas 形式に動的に変更することにした。PHPで処理するオーバーヘッドはあるけど、大した量ではない。

/*
 * [url="URL"] to <a href="URL" data-blogcard="1"></a> 
 */
function zu_blogcard( $attr, $content = null ){
    extract(shortcode_atts(array('url'=>''),$attr));
    return '<a href="'.$url.'" data-blogcard="1"></a>';
}
add_shortcode('blogcard', 'zu_blogcard');

今の所問題なく動いている。速くなったかどうかは不明だけど、読み込むCSSが1つ減ったので良しとしておこう。

追記: blogcardにサムネールを付ける+元画像がPNGの時に画像サイズの肥大が起こっている。またか……
さらに追記: 開発元ブログに設定方法あった。なんてこったい(ブログカードの使い方 | Luxeritas Theme)。こちらはpreg_replaceを使って置き換えている。どっちが速いんだろ。

WordPress

Posted by ず@沖縄