web-dev-qa-db-ja.com

YoastプラグインによるWordpress SEOでのエラー "preg_match_all"

誰かが本当に助けてくれることを願っています...

私はこのエラーメッセージを得ます:

"error Warning: preg_match_all() [function.preg-match-all]: Unknown modifier 'I' in /home/sulistyo/public_html/wp-content/plugins/wordpress-seo/admin/linkdex/linkdex.php on line 476" 

wordpress seo meta boxでフォーカスキーワードを入力/書き込みしたとき。

エラーを解決するために何をすべきかわかりません。誰かまたはプラグインの開発者(Joost de Valk)が、このエラーについての手助けをしてくれることを願っています - ありがとう。

本当にあなたの助けが必要です...

1
sulistyo

私はここで利用可能なすべてのバージョンをブラウズしました http://plugins.trac.wordpress.org/browser/wordpress-seo/tags/ そしてどこにもありません任意の "I"修飾子"I"修飾子は 明らかに 無効なので、エラーです。プラグインを更新すれば、間違いなく問題は解決します。または少なくとも更新が不可能な場合は、/ wp-content/plugins/wordpress-seo/admin/linkdex/linkdex.phpの476行目を編集して、

$keywordCount = preg_match_all("/".$job["keyword"]."/msIU", $body, $res);

またはそれが何をする必要があります。

$keywordCount = preg_match_all("/".$job["keyword"]."/msiU", $body, $res);

アップデート

'P'が無効な修飾子であると述べた後、キーワードがエスケープされていないこと、そしてその中にバックスラッシュ/を使用している可能性があることに突然驚きました。

更新を待っている間は、次のように行を書き換えることができます。

http://plugins.trac.wordpress.org/browser/wordpress-seo/trunk/admin/linkdex/linkdex.php#L476

$keywordCount = preg_match_all("#".$job["keyword"]."#msIU", $body, $res);

/#区切り文字に変更したことに注意してください。おそらくそれらを使用するつもりはないので、式は失敗しません。

http://php.net/manual/en/regexp.reference.delimiters.php

あるいは、 preg_quote のように使うこともできます。

$keywordCount = preg_match_all("/".preg_quote($job["keyword"], '/')."/msIU", $body, $res);
1
soulseekah

あなたの答えをありがとうSoulseekah。私は私の/wp-content/plugins/wordpress-seo/admin/linkdex/linkdex.phpをチェックしました、そしてそこに書かれているものはあなたが上で述べた/書くのと全く同じです、私は持っています:$ keywordCount = preg_match_all( " /".$job["keyword"]."/msiU "、$ body、$ res);そして、私は何がどこに問題があるのか​​わからない。コピーして置き換えようとしても、まだ何も起こらない。もう一度自分の投稿にfokusキーワードを再保存しようとすると、まだエラーが発生しましたが、別のメッセージが表示されます。 "error Warning:preg_match_all()[function.preg-match- "]:477行目の/home/sulistyo/public_html/wp-content/plugins/wordpress-seo/admin/linkdex/linkdex.phpに不明な修飾子 'p'があります。情報:プラグインは私の他の投稿でうまく機能しているように思われる一方で、このエラーは投稿のみの一つで発生します。ところで、あなたの答えをありがとう..、どうもありがとう...

0
sulistyo