Wordpressに関すること

WordpressWP-Plugin

投稿時に使う画像はその時々だったりするので、ファイル名はあまり気にせずに使ってきたのですが、
「あの時使った画像なんだったけー」とか
「日本語ファイル名だから、バックアップ時にうまくいかないー」
なんて事が発生します。

手作業で修正しようとすると、サーバー上のファイル名の変更をして~利用している記事のアドレスを変更して~
と、この上なく面倒なので便利なプラグインを利用します。

画像ファイル名を一括で変更できるプラグイン「Phoenix Media Rename」 – TDC

上記サイトに詳しく解説されております。(丸投げ)

Phoenix Media Rename プラグインは変更に少し時間がかかるけれど、メディアのファイル名ならず、利用している投稿の内容も修正してくれるので非常にありがたいです。

Program,WordpressPHP,WP-カスタマイズ

PHP7.2にして、Wordpressを動かして見ると、

count(): Parameter must be an array or an object that implements Countable in …(ファイルパス)/wp-includes/post-template.php on line 284

なワーニングメッセージが。

調べてみるとPHP7.2 になって count関数 が変わった模様。
PHP 公式マニュアル

バージョン 説明
7.2.0 count() will now yield a warning on invalid countable types passed to the array_or_countable parameter.

引数が配列かカウントできるオブジェクトじゃないとワーニングを出しますよー。
ってことになったらしい。

で、件の post-template.php では

if ( $page > count( $pages ) ) // if the requested page doesn't exist
	$page = count( $pages ); // give them the highest numbered page that DOES exist

と $pages がどんなオブジェクトがわからないまま、count関数の引数に使われているのでワーニングが出た模様。

$pages が空(NULL)の場合にワーニングが出るので、count関数を使う前に$pagesが空かどうかのチェックを入れればOK。
空の場合は0を入れてあげます。

if ( ! empty( $pages )) {
    if ( $page > count( $pages ) ) // if the requested page doesn't exist
    	$page = count( $pages ); // give them the highest numbered page that DOES exist
} else {
    $page = 0;
}

コンピュータプログラムの世界では 空(NULL) = 0 かどうかか環境依存だったりするので、ややこしいですね。



ひとまず該当箇所を修正して、ファイルを上書きすればワーニングは出なくなります。

Webサービス,WordpressWP-カスタマイズ

昨今、Webサイトの常時SSL化は必須の流れになってきています。
その流れに沿って自分の管理しているサイトもSSL化していますが、wpXサーバーでのWordpressサイトの独自SSL化でハマった箇所があったのでメモ。

wpXでの独自SSL化は管理画面のメニューにもあり、マニュアルもあるので大半は流れに沿っていけば問題ないかと思います。
[ 独自SSL設定 | wpXクラウド – WordPress専用のクラウドサービス ]

その中でハマったのが、マニュアルに沿って一通り設定が完了し、サイト自体もSSL化がされた鍵マークがついたので訪問者が閲覧する分には問題ありません。

が、Wordpressの管理画面内、一般設定のWordpressアドレスとサイトアドレスが http:// のままなのです。
直接編集しようにもグレーアウトされ入力は不可となっています。
一応、phpMyAdmin でデータベース内のデータを確認してみると、こちらは optionテーブル内の home と siteurl はきちんとhttpsに変わっています。
wpXのSSL化補助機能を使った結果できちんと反映されています。
が、WPの管理画面では反映されていない。なぜ?why?

いろいろ調べてみるとwp-config のファイル内で siteurl や home が定義されていると管理画面内ではグレーアウトするようです。

なるほど。wp-config で定義されている可能性があるな。
しかしwpX サーバーへFTPアクセスできるフォルダは wp-content フォルダ。 wp-config があるのはその一つ上のフォルダ。アクセスできんじゃないか!!
と思ったが、ちゃんと解決策もあるようで、wpXのFTP接続設定のオプションで接続先フォルダを変更できるものがあったようだ。

FTPオプションを変更して、wp-config にアクセスして(これもそのままじゃ権限の関係で編集できないので、アクセス権の変更が必要です)、案の定 home と siteurl が定義されていたので https に変更して、ようやくひと段落です。

原因が分かればさくっと解決できたのだが、何事もその原因追求に時間と手間がかかるのよねー。

そもそもSSL化補助機能で wp-config の変更もやってくれればよかったのにね。

WordpressWP-Plugin


PHPのバージョンを7.1xに上げた際、当Blogで利用しているWordpressプラグインで弊害が出たもの。
基本的に古いプライグインなので、代替品に変更することで対応する。

wp-tegaki

インストールしているとエラーでダッシュボードも見れなくなる。
FTPで該当プラグインフォルダを削除することで対応。

wp-tegaki を使用している記事については、CSSでWEBフォントを使うクラスを作り、Search Regexプラグインで一括置換。

exp:

[tegaki] を <span class="tegaki"> に置換
[/tegaki] を </span>に置換

[ WordPress の記事内容を一括で置換できるプラグイン Search Regex ]


ak-hs

記事表示時にエラーが発生する。
プラグイン自体も長らく更新されていないので、Responsive Lightbox へ変更。

変更に伴う既存記事の変更は特になし。

[ Responsive Lightbox by dFactory — WordPress プラグイン ]


Add Quicktag

設定保存時にエラーが発生。

Version2.5以上で修正されているので、最新版にアップデートすればOK。


wp-serverinfo

エラーではないが、OSやServerのValueの部分にワーニングが出る。

これといった実害がないので放置。



とりあえずこんなところかなー。

WordpressFont,WP-カスタマイズ

結構前に利用していたWordpressのプラグインの「wp-tegaki」。
長い間、更新されていないし、利用PHPのバージョンを7.1に上げた(*)際に、エラーで管理ページも開けなくなったので代替としてWebフォントを使うことに。
(* サーバーはさくらインターネットを利用しています。)

WordPressでは星の数ほどテーマはありますが、配信されているテーマをそのまま使うことはほとんど無く、カスタマイズした「子テーマ」として利用します。

子テーマ自体は他のサイトで沢山
[ 子テーマ – WordPress Codex 日本語版 ]


子テーマの設定

子テーマが実装された当初は style.css に親のstyle.cssを @import で読み込むことが定番だったけれど、昨今はfunction.phpで読み込み処理をするのが定番なのね。

style.css

/*
 Theme Name:   Twenty Fifteen Child
 Template:     twentyfifteen
*/

スタイルシートヘッダにはいろいろ記載項目はありますが、最低限子テーマの名前となる「Theme Name」と親テーマとなる「Template」を設定してれば子テーマとして認識されます。
ちなみにTemplateは親テーマの名前ではなく、フォルダ名なので注意です。

function.php

add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );

}

function.php では親テーマのcssファイルを読み込むコードを書きます。


Webフォントの選択

Webフォントを公開しているサイトはいろいろありますが、Googleでも公開されています。
日本語フォントも試験的に提供されています。

[ Google Fonts ]

[ Google Fonts + 日本語 早期アクセス • Google Fonts + Japanese Early Access ]


Webフォント用に funtion.php の編集

Webフォントを利用するのに読込が必要なCSSファイルがあります。

たとえば Google Fonts日本語のM+1pフォントを使う場合

<link href="https://fonts.googleapis.com/earlyaccess/mplus1p.css" rel="stylesheet" />

href属性で指定してる部分が読み込むCSSファイルになります。

これを読み込み処理を function.php に追加します。

function WebFontCSS() {
    wp_enqueue_style('mpuls1','https://fonts.googleapis.com/earlyaccess/mplus1p.css', array(), null, 'all');
}
add_action('wp_enqueue_scripts', 'WebFontCSS');


CSSでWebフォントの適用

style.css

.wf-mplus1p { font-family: "Mplus 1p"; }

使いたい箇所のCSSクラスのfont-family に追加したWebFontを設定してあればOKです。