フロントの人の雑多メモ

【WordPress】M ChartやVisualizerなどのグラフが表示されない問題を解決した話

【WordPress】M ChartやVisualizerなどのグラフが表示されない問題を解決した話

WordPressにグラフを入れられるプラグインで、グラフが表示されないことがあったので、その時の対処法をメモ。

有名どころ 「M Chart」や 「Visualizer」、 「WP Charts & Graphs」 などいろいろ試したんですが

すべて同じような感じで、HTMLは出力されるのに、JSのエラーが原因か、表示されません。

WordPress M Chart

デフォルトのjQueryを削除しているのが原因だった

wp_head()で読み込まれるWordPressのjQueryを削除していたのが原因でした。

NGだったfunctions.phpのコード

//デフォルトのjQuery削除
function delete_jquery() {
	if (!is_admin()) {
		wp_deregister_script('jquery');
	}
}
add_action('init', 'delete_jquery');

M Chart」の場合、以下のJSの読み込みが必要なのですが

  • /wp-content/plugins/m-chart/components/js/m-chart-chartjs-helpers.min.js
  • /wp-content/plugins/m-chart/components/external/chartjs/chart.js
  • /wp-content/plugins/m-chart/components/external/chartjs/chartjs-plugin-datalabels.js

デフォルトのjQueryを削除すると、これらも削除されてしまうようです。

なのでまずは、この記述をコメントアウトして、グラフが表示されるか試しましょう。

表示されたら

表示されたら、functions.phpの記述を見直します。

独自にjQueryを読み込んでる場合、確かにWordPressのjQueryは不要なので

functions.phpの記述を以下のように変更します。 (M Chartの場合)

//デフォルトのjQuery削除
function delete_jquery() {
	if (!is_admin()) {
		wp_deregister_script('jquery');

		//M ChartのJSは読み込むように
		wp_enqueue_script('m-chart', plugins_url() . '/m-chart/components/js/m-chart-chartjs-helpers.min.js', array(), NULL, true);
		wp_enqueue_script('chart-js', plugins_url() . '/m-chart/components/external/chartjs/chart.js', array(), NULL, true);
		wp_enqueue_script('datalabels', plugins_url() . '/m-chart/components/external/chartjs/chartjs-plugin-datalabels.js', array(), NULL, true);
	}
}
add_action('init', 'delete_jquery');

これで、WordPressのjQueryは削除するけど、「M Chart」に必要なJSファイルは読み込むようになります。

Visualizer」の場合、uploadフォルダに動的にjsファイルが生成されるのと、インラインにJSが書かれるみたいなので、こういうことはできなそうです。

functions.phpの記述を削除するだけで我慢しましょう。

他のプラグインの場合でも、functions.phpの記述を削除したらどのようなJSが読み込まれるのか観察して、対応してみてください。

コメント

内容を確認の上、個人情報などは省いて掲載させていただきます。

直接送信されます。確認の上、「送信」してください。

シェア

Twitterでシェア Facebookでシェア LINEでシェア はてなブックマークでシェア