カテゴリー別アーカイブ: プラグイン

目次の表示・非表示を切り替えボタンが表示されないTable of Contents Plus

WordPressプラグインでページ内のhタグから自動的に目次リストを生成してくれるプラグインに、

Table of Contents Plus (TOC+)があります。

Table of Contents Plus

 

TOC+は各ページ内のhタグの構造から、ページ内のサイトマップをセマンティックにページ内アンカーリンク付きの目次リスト生成してくれるので、SEO対策などでもよく使用されているようです。

 

ショートコード[toc]を配置するだけで、設定した固定ページや記事ページ、CPT UIなどで個別の投稿タイプを追加した場合も表示できるので、とても便利です。

 

長いページが多い最近のWebコンテンツでは、この目次一覧がとても長くなることもありますが、一覧をクリック一つで表示したり非表示にしたりするリンクボタンもプラグインの設定ですぐに表示できます。

 

先日、運営するランディングページを見ていると、目次の近くに表示されていた「表示/非表示」のリンクボタンが消えていました。

TOC+の設定画面から、[ユーザーによる目次の表示・非表示を切り替えを許可]のチェックを入れなおしても表示されず、CSSを調べて見ました。

どこをどう調整しても表示されないので、JavaScriptやfunction.phpの影響を調べましたが、どこをどう制御しても表示されませんでした。

 

おそらく原因は以前GooglePagespeedインサイトでサイト速度を調整した際に、いろいろとカスタマイズしたのでその影響だろうと予想はしたのですが、あまりこの表示、非表示のボタンリンクが表示されない件についての記事が見つからず(設定方法は鬼のように見つかります)途方にくれてheader.phpを眺めていると、どうも怪しい記述が。

 

<?php wp_deregister_script(‘jquery’); ?><!–jqueryを除外–>

あ、これだ。

 

カスタマイズされた配布型のWordPressテーマを使用した場合、wp_headで実にたくさんの余分なファイルが読み込まれてしまい、ページ速度がとても遅くなることがあります。

そのため、wp_deregister_script(‘jquery’);で余分なjqueryを読み込まないようにしていたためです。要はこの記述でwp_headで読み込まれるWordPress本体やプラグインのjqueryを読み込まないように指定して、個別にファイルを読み込んだりするわけですね。

 

結果としてページスピードを調整しすぎると、Webコンテンツ本来の表示や運用中に問題が発生しやすくなるため、pagespeedインサイトに合わせすぎて特殊なカスタマイズをしすぎると、今度は逆にメンテナンス毎に対応内容が煩雑になったり時間がかかったりすので、悩みどころです。

 

例えば、CSSやjqueryをすべてインラインで短縮記述にするとファイルサイズが軽くなったり読み込みが早くなったりするということなんですが、光回線の時代に数キロから数十キロバイト軽くしたところで、いったいどういうメリットがあるのか?という疑問がずーっとあります。

 

カスタマイズされてページソースを見ると延々とスクリプト記述やスタイルシート記述が続くページを見ると、すこしゾッとします。(例えば、セレクタを追加するときは一瞬でできるとはいえ、毎回生成しなおすのだろうか?と。)

 

 

話はそれましたが、プラグインはcssだけでなくjqueryも独自に読み込みを行うものが大半なため、jqueryが重複したり、古いバージョンを読み込んだりして、結構衝突を起こしやすい傾向があります。

 

この記述を削除すると、目次の脇に「表示/非表示」のアコーディオン機能のリンクボタンが無事表示されました。考えてみるとアコーディオンボタンは基本的にjqueryが使用されることが多いので、勘のいいひとだと3秒ぐらいで気づくのだろうと感じました。

 

Table of Contents Plusに限らず、動作していたプラグインやアニメーション的な視覚効果などが動かなくなった場合は、結構jquery関係の影響が多いので、これからはそこから疑うようにしようと再認識しました。

 

ただ、Table of Contents Plusは最終更新が「Released: 5 January 2016」と大分前になるので、将来的には警告やエラーが出始めるかもしません。

個人的にはあまり更新されないほうが安定しているので良いのですが、似た機能の新しいプラグインを導入するのも良いかもしれません。

 

Easy Table of Contentsというプラグインがあり、こちらが良いようです。

Easy Table of Contents

 

 

プラグインの公式ページには、「目次を投稿や固定ページ、カスタム投稿タイプに挿入することが出来ます。使いやすく、機能に特化したプラグインです。」と説明があるので、おおむねTOC+と同じ使い方が可能だし、評価も高いようなので、このタイミングで変更してもよかったのですが、別のWordPressサイトで試してからにしてみます。

 

 

この手のプラグインは、便利だと思って導入しても使い方がわからなかったり、特定のバグやほかのプラグインとの衝突が発生したりするリスクがあるので、事前に一度、あまり負担がないワードプレスサイトで試してから導入することにしています。

 

ただ、この手の機能はシンプルな構造なので、会員管理プラグインなどのようにあまり問題が発生しにくいので、すぐに導入しても問題が起きにくいプラグインになるでしょう。

 

 

掲載情報につきましては、当サイトが独自に調査、検証および収集した情報です。

情報の妥当性や確実性を一切保証するものでなく、情報や内容が訂正や修正、変更されている場合があります。 よって、当サイトの利用により生じたいかなる損害等についても運営側にて一切の責任を負いません。

掲載情報の修正・変更等をご希望の場合はお知らせください。

WP Custom Fields Searchでカスタムフィールド検索-専用ページ

WordPressでカスタムフィールド内の絞り込み検索などをする際に便利なプラグインです。

なぜか設定やインポートなどのキーワードで検索するとACF(Advanced Custom Fields)とセットでヒットしますが、WP Custom Fields Searchのみで検索すると表示される情報は少ないです。

数年にわたり配信が停止されていましたが、2018年度ぐらいに更新されて現在のWordPressでもまた使用できるようになっています。
絞り込み検索の設定インターフェースはわりと変更されているので、以前のプラグインとは別の新しいプラグインと思ったほうが良いかもしれません。

とてもAdvanced Custom Fieldsのチェックボックス参照などの相性もよく、設定は多少手間がかかりすこしクセがありますが、それでも使いやすいのではないかと感じました。

ACFはチェックボックスなどの配列の値をシニアライズ、つまり変数にして文字列に変換して、さらに構造化するという処理がされているので、直接値を表示させると一見バグのように見えるので、設定には注意が必要です。

またPHP7環境については、関数についてもcount()の警告文、
「Warning : count(): Parameter must be an array or an object that implements Countable in file…..」
と表示されます。

あまりよくわかりませんが、多分、count関数は配列にしなくてはいけないのですよ、と言っているみたいだったので、配列にしてみたら警告はでなくなりました。
警告文はエラーではないので、機能に問題はありませんが、非表示対応などの簡易的な方法でも一応は対処できます。

また、配列での検索指定ややや手間がかかり、一度でも設定を変更すると、配列情報は最初からやり直さないとシニアライズされた文言が表示されます。
これはどうも仕様のようなので仕方ないかもしれないですね。

あとは基本的に使いやすいかと感じました。
もしかするとGxxgxeの機能に近しい検索ができるんじゃないかとも感じましたが、たぶんリスクが高いのであまりその点は触れないほうが良いかもしれません。

全体としては、シンプルに設置できることもあり、扱えるひとには推奨したいプラグインです。

掲載情報につきましては、当サイトが独自に調査、検証および収集した情報です。

情報の妥当性や確実性を一切保証するものでなく、情報や内容が訂正や修正、変更されている場合があります。 よって、当サイトの利用により生じたいかなる損害等についても運営側にて一切の責任を負いません。

掲載情報の修正・変更等をご希望の場合はお知らせください。

MW WP Formで完了画面まで表示されてメール送信できないとき。

WordPressプラグインのMW WP Formで完了画面で「エラーが発生しました。後ほどもう一度お試しください。」と表示されて、メール送信が確認できないときの対応について。

■行ったこと

1.MW WP Formの送信内容にformタグが含まれていないか確認。
2.自動送信メール設定と管理者宛メール設定の送信元、件名、本文をすべて直接入力

上記で修正すると無事送信完了。

送信元(E-mailアドレス)に未入力の場合は・・・と管理用アドレスが自動入力されるような記述があるが、ここが原因とみられる。
直接入力することで別途プラグインなどは必要なさそう。

■反省点
原因の切り分けがすぐにできると考えて、設置した本ページのまま原因を探そうとして、結局、簡単な確認用のフォームを作成して各メール設定の項目を入力したところすぐに原因が判明したので、横着をしないで最初から原因を切り分ける確認用のフォームを作成すべてきでした。

掲載情報につきましては、当サイトが独自に調査、検証および収集した情報です。

情報の妥当性や確実性を一切保証するものでなく、情報や内容が訂正や修正、変更されている場合があります。 よって、当サイトの利用により生じたいかなる損害等についても運営側にて一切の責任を負いません。

掲載情報の修正・変更等をご希望の場合はお知らせください。