LPテンプレート「カラフル」をお使いの方へ

WordPressテーマの「カラフル」を使用しているサイトに、「Mikomi」をプラグインとして追加&有効化すると以下のエラーが発生します。(カラフルのバージョン4.11にてこの現象を確認)

Fatal error: Cannot redeclare acf_filter_post_id()〜

利用者の多いテーマですので、このページで対処法をご案内します。

 

# エラーが発生する原因

PHPの変数名が重複していることが原因で、「カラフル」のテーマファイル内でエラーが発生します。

「カラフル」と「Mikomi」はどちらもAdvanced Custom Fieldという部品を内部で使用していますが、「カラフル」に組み込まれているAdvanced Custom Fieldのバージョンが古いため、変数名の重複によるエラーを防ぐように作られていません。

同じWordPressで「カラフル」と「Mikomi」の両方を使うためには、「カラフル」内のPHPのコードを修正する必要があります。

 

# 修正対象ファイル

【WordPressのインストール先】/wp-content/themes/lptemp_colorful/functions.php

 

# 修正内容

変更前(514行目)
include_once('advanced-custom-fields/acf.php');

変更後
if( ! class_exists('acf') ) {
include_once('advanced-custom-fields/acf.php');
}

 

# 修正手順

※この作業は「Mikomi」のプラグインを有効化する前に行って下さい。また、事前にバックアップを取ってから行うことをおすすめします。

  1. WordPressのダッシュボードのメニューにて、「外観」>「テーマの編集」をクリックします。
  2. 画面の右側にある「テーマのための関数(functions.php)」をクリックして、編集対象のファイルの内容を表示します。
  3. ページ内を「include_once(‘advanced-custom-fields/acf.php’);」で検索して、修正対象箇所を見つけます。
  4. 前述の変更後のコードを対象箇所にコピペします。
  5. 下にある「ファイルを更新」ボタンをクリックします。(ファイルが変更可能なパーミッションになっている必要があります)
  6. 「Mikomi」のプラグインを有効化して、ページが正常に表示されることを確認します。

 

# エラーが発生した場合に元に戻す方法

エラーが発生して、ダッシュボードの表示ができなくなってしまった場合、FTP等で接続して「Mikomi」のプラグインフォルダを削除することで、もとに戻すことができます。

【WordPressのインストール先】/wp-content/plugins/mikomi

「mikomi」という名前のフォルダごと削除しましたら、ダッシュボードが表示できることを確認して下さい。