Advanced Custom FieldsでGoogleマップが表示されない場合の対処

August 17,2021 11:55 PM
Category:[トラブルシューティング]
Tag:[AdvancedCustomFields, WordPress]
Permalink

WordPressのプラグイン「Advanced Custom Fields」でGoogleマップが表示されない場合の対処方法を紹介します。

1.問題点

「Advanced Custom Fields」でGoogleマップをカスタムフィールドとして表示するよう設定しました。

(クリックで拡大)

が、投稿画面では「このページでは Google マップが正しく読み込まれませんでした。」と表示されます。

(クリックで拡大)

ということで、WordPressのプラグイン「Advanced Custom Fields」でGoogleマップが表示されない場合の対処方法を紹介します。

2.対処方法

まず、Googleのサービスを利用するためのAPIキーを作成します。

Google Cloud Platform」にアクセスし、左上のナビゲーションメニューをクリックして、「APIとサービス」→「認証情報」をクリック。

「認証情報を作成」→「APIキー」を選択(私はすでにAPIキーを作成してしまっているので、文章のみ)。

これでAPIキーが作成されるので、キー名をクリックした先にあるAPIキーをコピーしてください。

このままの状態ではAPIキーを誰でも使えてしまうので、作成されたAPIキーのリンクをクリックし、遷移したページで使用制限の設定を適宜行ってください(ここでの説明は省略します)。

次に、Google Cloud PlatformのAPIライブラリの、

  • Maps JavaScript API
  • Places API
  • Geocoding API

を有効化します。

有効化するには、先ほどの「Google Cloud Platform」にアクセスし、左上のナビゲーションメニューをクリックして、「APIとサービス」→「ライブラリ」をクリック。

「Maps JavaScript API」をクリック。

「有効にする」をクリック。これで有効化されます。

他のAPIも同様の手順で有効化してください。「Geocoding API」はAPI一覧画面右側の「すべて表示」をクリックするか。「Maps JavaScript API」を有効化したあとに表示されたAPI一覧から選択できます。

最後に、取得したキーをWordPressのfunctions.phpに設定します。

WordPressの「外観」→「テーマエディター」をクリック。

「テーマのための関数(functions.php)」をクリック。

テキストエリアの最後に下記の内容をペースト。

function my_acf_google_map_api( $api ){
    $api['key'] = 'ここにAPIキーをペースト';
    return $api;
}
 add_filter('acf/fields/google_map/api', 'my_acf_google_map_api');

これでGoogle Mapが表示されます。

(クリックで拡大)

Comments [0] | Trackbacks [0]

Movable Typeのダイナミックパブリッシングで「An error occurs.」になる場合の対処

Movable Typeのダイナミックパブリッシングで「An error occurs.」になる場合の対処について紹介します。

1.問題点

Movable Typeにダイナミックパブリッシングを設定してページを開いたところ、「An error occurs.」というエラーが発生しました。

なお、下記は設定済です。

PHP の設定ファイル(php.ini)内にタイムゾーンの設定を記述し、ウェブサーバーを再起動

date.timezone = Asia/Tokyo

参考:Q.ダイナミックパブリッシングでエラー「ページが見つかりません。 An error occurs.」

httpd.conf に以下の記述を追加して再起動

<Directory /usr/local/apache/htdocs/mt>
  AllowOverride All
</Directory>

参考:ダイナミックパブリッシング

2.対処

より詳細なエラーを取得するために、mt-config.cgiに

DebugMode 1

を設定してページにアクセスしたところ、「Deprecated: Function create_function() is deprecated」が表示されました。

調べたところ、PHP7.2以降でcreate_function()を実行すると、このエラーに遭遇するようです。

検証していたMovable Typeのバージョンは6.3.7で、php/extlibやphp/lib配下のPHPでcreate_function()が多数起動していました。

対処としてはMovable Typeを6.5.x以降にバージョンアップすることですが、create_function()のコードを書き換える方法もあるようです。

参考:PHP 7.2 で発生する「 Function create_function() is deprecated」エラーに対処する

3.その他

ダイナミックパブリッシングを簡単に動作確認するには、インデックステンプレートを作成し、中に

<MTDate>

の1行を書いて、ダイナミッパブリッシングで保存し、ページを開いたときに、

2021年8月 1日 16:25

という風に表示されればOKです。

Comments [0] | Trackbacks [0]

MySQL(phpMyAdmin)でエラー#1089になる場合の対処

August 1,2021 11:55 PM
Category:[MySQL]
Tag:[MySQL, phpMyAdmin]
Permalink

MySQL(phpMyAdmin)でエラー#1089になる場合の対処方法を紹介します。

1.問題点

phpMyAdminで下記のようなテーブルを作成してみました。

"id"を「AUTO INCREMENT(A.I)」を設定しています(プライマリーキーはその流れで設定)。

(クリックで拡大、以下同様)
テーブルを作成

ですが、この状態で保存すると、

#1089・キーのプレフィックスが不正です。キーが文字列ではないか、プレフィックス長がキーよりも長いか、ストレージエンジンが一意検索のプレフィックス指定をサポートしていません。

というエラーが表示され、保存することができません。

#1089・キーのプレフィックスが不正です。キーが文字列ではないか、プレフィックス長がキーよりも長いか、ストレージエンジンが一意検索のプレフィックス指定をサポートしていません。

ということで、エラー#1089になる場合の対処方法を紹介します。

2.対処方法

"id"をプライマリーキーにせず、「AUTO INCREMENT(A.I)」も設定しない状態で保存。

テーブルを作成

"id"をチェックして「ユニーク」をクリック。

これでインデックステーブルが生成されます。

インデックステーブルが生成

"id"の「変更」をクリック。

idの「変更」をクリック

「AUTO INCREMENT(A.I)」をチェックして保存。

「AUTO INCREMENT(A.I)」をチェックして保存

これで"id"がAUTO INCREMENTになりました。

AUTO INCREMENT

3.参考サイト

参考サイトは下記です。ありがとうございました。

Comments [0] | Trackbacks [0]
 1  |  2  |  3  |  4  |  5  | All pages