php7にしたらWordPress FAQ Managerでwarningエラーの時の対処、解決方法


WordPress FAQ Managerを使っていて、既にプラグインの更新が終わっていて、
php7にしたらwarningエラーが出てしまった時の備忘録です。

既にWordPress FAQ Managerの更新はされていないので、
普通はこのプラグインの使用をあきらめて、

違うプラグインを探して作り直さなければならないと考えると思います。

自分もそうしようと思っていたのですが、
解決法を教えてくれたブログ記事があったので、

今回は、それで対応し解決しました!

結構多くの人が使っているプラグインだった場合、
プラグインのファイルの修正をして対応している人もおり、

そういう方がありがたいことに、
修正方法を教えてくれているので、本当に助かります!

神です!

ちなみに、今回のWordPress FAQ Managerのwarningエラーは、
php7で未対応になった記述の修正です。

【参考サイト:https://sakidesign.com/deprecated-2017-04/】

修正するファイルは以下の3つです。

●plugins/wordpress-faq-manager/faq-manager.php
●plugins/wordpress-faq-manager/faq-widgets.php
●plugins/wordpress-faq-manager/inc/js/faq.init.js

コンテンツ

●faq-manager.php の修正箇所(637,638行目あたり)

// clean up text
//		$faq_topic	= preg_replace('~�*([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $faq_topic);/*変更前*/
//		$faq_tag	= preg_replace('~�*([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $faq_tag);/*変更前*/
		$faq_topic	= preg_replace_callback('~�*([0-9a-f]+);~i', function($m){chr(hexdec($m[1]));}, $faq_topic); /* 変更後 */
		$faq_tag	= preg_replace_callback('~�*([0-9a-f]+);~i', function($m){chr(hexdec($m[1]));}, $faq_tag); /* 変更後 */

●faq-widgets.php の修正箇所

5か所あるので、ファイル内検索(ctrl+F)で
・function search_FAQ_Widget
・function random_FAQ_Widget
・function recent_FAQ_Widget
・function topics_FAQ_Widget
・function cloud_FAQ_Widget
をそれぞれ検索して、以下の該当箇所を修正してください。

・function search_FAQ_Widget

php//	function search_FAQ_Widget() {/*変更前*/
	function __construct() {/*変更後*/
		$widget_ops = array( 'classname' => 'faq-search-widget widget_search', 'description' => 'Puts a search box for just FAQs' );
//		$this->WP_Widget( 'faq_search', 'FAQ Widget - Search', $widget_ops );/*変更前*/
		parent::__construct( 'faq_search', 'FAQ Widget - Search', $widget_ops );/*変更後*/
	}

・function random_FAQ_Widget

phpclass random_FAQ_Widget extends WP_Widget {
//	function random_FAQ_Widget() {/*変更前*/
	function __construct() {/*変更後*/
		$widget_ops = array( 'classname' => 'faq-random-widget', 'description' => 'Lists a single random FAQ on the sidebar' );
//		$this->WP_Widget( 'faq_random', 'FAQ Widget - Random', $widget_ops );/*変更前*/
		parent::__construct( 'faq_random', 'FAQ Widget - Random', $widget_ops );/*変更後*/
	}

・function recent_FAQ_Widget

phpclass recent_FAQ_Widget extends WP_Widget {
//	function recent_FAQ_Widget() {/*変更前*/
	function __construct() {/*変更後*/
		$widget_ops = array( 'classname' => 'recent-questions-widget', 'description' => 'List recent questions' );
//		$this->WP_Widget( 'recent_questions', 'FAQ Widget - Recent', $widget_ops );/*変更前*/
		parent::__construct( 'recent_questions', 'FAQ Widget - Recent', $widget_ops );/*変更後*/
	}

・function topics_FAQ_Widget

phpclass topics_FAQ_Widget extends WP_Widget {
//	function topics_FAQ_Widget() {/*変更前*/
	function __construct() {/*変更後*/
		$widget_ops = array( 'classname' => 'recent-faqtax-widget', 'description' => 'List FAQ topics or tags' );
//		$this->WP_Widget( 'recent_faqtax', 'FAQ Widget - Taxonomies', $widget_ops );/*変更前*/
		parent::__construct( 'recent_faqtax', 'FAQ Widget - Taxonomies', $widget_ops );/*変更後*/
	}

・function cloud_FAQ_Widget

php//	function cloud_FAQ_Widget() {/*変更前*/
	function __construct() {/*変更後*/
		$widget_ops = array( 'classname' => 'faq-cloud-widget', 'description' => 'A tag cloud of FAQ topics and tags' );
//		$this->WP_Widget( 'faq_cloud', 'FAQ Widget - Cloud', $widget_ops );/*変更前*/
		parent::__construct( 'faq_cloud', 'FAQ Widget - Cloud', $widget_ops );/*変更後*/
	}

●faq.int.jsの修正箇所

【参考サイト:https://office-fitplus.com/column/wordpress-faq-manager/】

修正前

/********************************************************
// pagination function
//********************************************************

	function show_me_some_more() {
		jQuery('p.faq-nav a').live('click', function(e){

修正後

//********************************************************
// pagination function
//********************************************************

	function show_me_some_more() {
		jQuery('p.faq-nav a').on('click', function(e){

Lightbox Plus Colorboxプラグインでもwarningエラーが大量に!

Lightbox Plus Colorboxプラグインもphp7にしたら、warningエラーが大量に出てしまいました。

しかし、ご安心ください。

Lightbox Plus Colorboxを使うのをやめて、Easy FancyBoxを使うようにすれば問題が即解決します!

画像のpopアップだけでなく、埋め込みyoutube動画もpopアップするようになりますので、ご安心ください!

この記事が気に入ったら
いいね ! しよう