WordPressバージョン4.9.2でエラー

最新にしたら、以下のようなエラーがヘッダーあたりにでるようになった。これは見苦しいのでなんとかしたい。

Warning: preg_match() [function.preg-match]: Compilation failed: unrecognized character after (?< at offset 4 in {{install_home}}/wp-includes/wp-db.php on line 1657

Warning: Cannot modify header information – headers already sent by (output started at {{install_home}}/wp-includes/wp-db.php:1657) in {{install_home}}/wp-admin/includes/misc.php on line 1114

※実際は{{install_home}}はwordpressインストールディレクトリが表示されている。

エラーだけみると正規表現の書き方がまずいらしい。

調べてみると?<XXXX>を?P<XXXX>にすればいいそうだ。PHPを5.2.2以上にすれば解決するようだが、暫定対応はしないと。

wp-includes/wp-db.phpの1649行目と1653行目のところを上の形式に変えてみた。結果は?P<host>と?P<port>のような感じ。
これで、トップページや記事を2、3見たり、この投稿をしたりしてみたが、今のところ大丈夫なようだ。

// We need to check for an IPv6 address first.
// An IPv6 address will always contain at least two colons.
if ( substr_count( $host, ':' ) > 1 ) {
	$pattern = '#^(?:\[)?(?P<host>[0-9a-fA-F:]+)(?:\]:(?P<port>[\d]+))?#';
	$is_ipv6 = true;
} else {
	// We seem to be dealing with an IPv4 address.
	$pattern = '#^(?P<host>[^:/]*)(?::(?P<port>[\d]+))?#';
}

$matches = array();
$result = preg_match( $pattern, $host, $matches );

投稿の最後にマージンが取られないとき

通常Pタグで下マージンが取られているが、投稿の最後にDIVタグなとを入れた場合Pタグのようなマージンが取られず、詰まった感じなってしまう。

幾つか試したが、下のように投稿の最後に内容のないPタグを記入すると下マージンだけ取れるようだ。

・
・
</div>
<p></p>

リビジョン管理プラグインの設定

リビジョン管理プラグインの設定は以下のような感じに落ち着いた。

要約

・失敗のやり直しのために5回分の履歴をとる。
・5日以上前の履歴は綺麗サッパリ削除する。

個々の設定

「リビジョンを削除した後にデータベースを最適化」プラグイン
Delete revisions older thanを「5days」に、
Delete trashed itemsとDelete unused tagsにチェックであとはデフォルトのまま。
Maximum number of – most recent – revisions to keep per post / pageを使用しないのは「Revision Control」でまかなえると考えたから。
この設定で5日経過した履歴は数に関係なく綺麗サッパリ削除できる。

「Revision Control」プラグイン
posts/pagesともに「Maximum 5 Revisions stored」を設定。
失敗のやり直し用途としては5回分もあれば十分かなというこでこれに決定。

感想

とっておきたい履歴と不要な履歴などを区別できればベターなのだが、自動でそのようなことをやってくれるプラグインはまだないようだ。理想的にはとっておきたい履歴にチェックできればいいのだが…
ま、手動でそのような管理をするのは手間なので上のような運用で妥協。

ネタバレ注意喚起

※ネタバレ注意

ネタバレ注意喚起はどうしようか。投稿の最初に書いて修飾するか。

cssはこの注記が投稿の先頭に入れられ次の行から本文を記入する前提で指定。
ポイント
 ・少し本文と間隔をとる
 ・注記はあとで一括で変更できるように擬似要素で指定

/* ネタバレ注意 */
.netabare {
	color: mediumvioletred;
	font-weight: bold;
	font-size: 0.95em;
	padding-bottom: 0.8em;
}

.netabare:after {
	content: "本文にはネタバレとなる内容が含まれています。";
	font-weight: normal;
	padding-left: 1.0em;
	font-size: 0.8em;
}

ネタバレ注意を入れたい投稿の先頭に以下を入れればよいようにした。

<div class="netabare">※ネタバレ注意</div>

Revision Controlプラグインの気になる点

先日入れたRevision Controlプラグインだが自動保存されたリビジョンがある場合Post Revisoinsの表示がちょっとおかしくなるよう。さらに自動保存されたリビジョンにデリートチェックができないので削除できない。どうしたものか。

投稿内にちょっとした区切りをつける

一日の出来事などを書くとき一つの投稿のなかで幾つか区切りを入れたい場合があった。
普通の区切りだど芸がないのでCSSで区切りを修飾してみた。

~・~・~

こんな感じ↑

cssは投稿の中に表示する前提で指定。

/* 文章の区切り */
.kugiri {
	width: 50%;
	text-align: center;
	color: olivedrab;
	font-size: 0.8em;
	margin-bottom: 0.8em;
}

区切りを入れたい文書の前行に以下を入れればよいようにした。

<div class="kugiri">~・~・~</div>

「リビジョンを削除した後にデータベースを最適化プラグイン」を入れてみた

「リビジョンを削除した後にデータベースを最適化」プラグインを入れてみた。それにしても的確な名前だっ!

今までリビジョンが多くなる投稿もあり気になっていた。
これで簡単に整理できそうなのでちょっとスッキリ。

Better Delete Revisionというのもググっていたら見つかったが、更新日が「リビジョンを削除した後にデータベースを最適化」のほうが最近だったのでこちらにした。

ついでに「Revision Control」というやつも入れてみたがこちらは、リビジョン最大数制限とリビジョンの個別削除ができるようだ。個別削除ができたら一括削除はなくて問題ないかな。

今回参考にさせて頂いたURL

Revision Control – WordPressのリビジョンを削減してデータベース容量を減らせるプラグイン – ネタワン

「url」フィールドの値は必須です。

「url」フィールドの値は必須です。

Google Search Consoleの構造化データチェックでBreadcrumbクラスに「url」フィールドの値は必須です。」というのもでていた。

パンくずリストはBreadcrumb NavXTを利用しているがそのBreadcrumbクラスでリンクなしの場合、urlが設定されないよう。

対応として以下のようにしてみた
Breadcrumb NavXTの設定で「ホームページテンプレート (リンクなし)」の設定が

<span typeof="v:Breadcrumb"><span property="v:title">%htitle%</span></span>

になっているが、リテラルのみ表示するよう単純に

%htitle%

に変更。なお、その他のリンクなしの設定も多少リテラル表示内容が違うものがあるが同様の考えで変更。これでエラーはでなくなった。
SEOとかに影響でるのかな?ま、SEOはあまり気にしていないので、エラーがなくなればよしとする。

author がありません

’16/10/3追記- –
最初40件このエラーが出ていたが今日現在で18件に減った。この対応の効果がでているようだが、一発で変わらないものか(´・ω・`)
– – – – – – – –

Google Search Consoleの構造化データチェックでhentryクラスに「authorがありません」とでた。

いろいろググってみるとhentryクラスにはauthorがないとダメなようだ。

WordPressでの対応方法は「hentryクラスを自体を削除する方法」と「authorをつける方法」の2つに別れるようだ。
今回はauthorをつける方法で対応しようと、一番よさそうな紹介ページを探し始めた。でも、その方法もいろいろあり、ベストなのはどれかを判断するのは難しいなと感じた。
結局、紹介ページの部分部分を参考にし、今の利用しているテーマではこうしたほうが良いかな?とわたしなりに考えてみた。なので、ベストとはいい難いか。

対応方法

(テーマはTwenty Fifteenを使っている前提で記入している)

概要:
シングルページでないかつシングルユーザーの場合は「(by 作成者)」と表示されるようにし、そこにauthorクラスを指定する。

続きを読む author がありません