PR

Cocoonバージョンアップへの対応で

ワードプレスのテーマCocoonについて
この記事は約5分で読めます。

本サイトはCocoonの最新バージョンに対応して行くことを基本姿勢にしています。

なおサイト開設時はバージョン1.5.9を利用しておりましたが、その後1.6.0~1.7.4まで15回のバージョンアップがされ、更に1.7.4.1から1.7.4.3まで3回のマイナーバージョンアップがされて、合わせて2カ月強の間に18回のバージョンアップがされましたが、この間はその都度テーマの更新をするだけで対応が完了していました。

がしかし、バージョン1.7.4.4で実施された「一部関数名の変更」で対象となった関数を、本サイトが追加コーディングしている部分で使用していたために、初めてバージョンアップをするとエラーが発生する状況となり、追加コーディンクをした箇所の再修正が必要となる事態が発生しました。

追加コーディングをしている場合には良くある話ではありますが、今回対応した内容と合わせて今後の対応の仕方を備忘録として残して置きたく存じます。

スポンサーリンク

今回対応したファンクション

今回名称が変更された関数は下記になります。

変更前(バージョン1.7.4.3以前)変更後(バージョン1.7.4.4以降)
get_additional_popular_entriy_cards_classesget_additional_popular_entry_cards_classes

「entriy」が「entry」に修正されました。
なお同様な名称の関数はもう一つありますが、「get_additional_widget_entriy_cards_classes」につきましては今回は修正されていません。
【追記】(2019/8/4)。2019/7/19日に上記関数名が修正され「get_additional_widget_entry_cards_classes」になりました。なおget_additional_popular_entry_cards_classes関数は廃止されて「get_additional_widget_entry_cards_classes」にまとめられています。//

この修正された関数は、「cocoon-master\lib\html-forms.php」というファイルの中にある「人気ランキングリストの取得」をする「generate_popular_entries_tag」というファンクションから呼ばれています。
本サイトではこのファンクションに対してスニペットを付けた「generate_popularsnipet_entries_tag」としてfunction.phpに追加コーディングをしています。

本サイトの「スニペット付き新着記事と人気記事一覧の作成」のなかで、この追加コーディングの内容を説明していますが、今後はバージョン1.7.4.3以前と、バージョン1.7.4.4以降という2パターンでの説明に変更したします。

なお話は変わりますが「汎用エントリーウィジェットのタグ生成」をする「generate_widget_entries_tag」というファンクションでは、バージョン1.7.4.4で除外カテゴリーの設定機能が追加されています。
詳細は下記のCocoonのアップデート情報のページをご参照ください。

実はこのファンクションも、本サイトではスニペットを付けた「generate_widgetsnipet_entries_tag」としてunction.phpに追加コーディングをしています。
従いまして、合わせてこの追加機能も追加コーディングに反映しています。

追加コーディングを子テーマのfunction.phpやstyle.cssにする時の考慮点

子テーマのfunction.phpやstyle.cssに追加コーディングをする目的は下記になる認識です。

  • そもそものファンクションがコーディングされているphpファイルには、他にも多くのファンクションが定義されており、ファイルごと子テーマにコピーして修正してしまうと、バージョンアップによる変更に対応する確率が高くなる。
  • 確率というよりも、そもそも変更がないファンクションまで子テーマに定義するのは非効率的である。

ただし、function.phpやstyle.cssに追加コーディングすると、「File Diff」のようなツールを使用してバージョンアップ後のコーデング内容をファイル単位に比較することができなくなってしまいます。

そこで、比較用のフォルダーを作成し、そこにもともとのphpファイル名でfunction.phpに追加コーディングした内容を残すようにします。
このことは、function.phpと比較用フォルダーで同じものを管理しなけれはせなりませんが、バージョンアップ後の同じ名前のphpファイルから該当するファンクションのみ残して比較用ファイルを作成さえすれば、ファイル単位に違いを見つけられるので、両者の差を見つけ出すには効果的です。

stye.cssにつきましては、比較用ファイルを作るのが、少し面倒ではありますが、独自の追加コーディングのブブは除き、既存のCSSを変更した部分を少し多めに比較用ファイルに保存しておくことで、若干は手間が減ることにはなります。

メンテナンスウインドウを決めて置く

いままでは、そういう意味では適当な時間に、Wordpressなりテーマなりプラグインの更新をしてきましたが、今後のことを考えて、そのような更新や、今回のような修正コーディングを反映する時間枠を設定することに致します。

本サイトの場合は「22時から最大で1時間」をメンテナンスウインドウとさせていただき、「ご利用に際して」のページにも記載いたします。

本来であれば、開発環境で十分な確認をした後で本番環境に適用すべきですが、如何せん余裕がないことでありますので、いましばらくは開発環境は作らず、30分経って目途が立たなければ切り戻し作業する形で進めたく存じます。

まとめ

今回のバージョン1.7.4.4は2019/4/5に公開されていますので、対応に1週間を要してしまう形になりました。
今後はもう少し短いスパンで対応できるようにして参る所存です。

【追記】(2019/8/4)。ver1.9.1の対応でもやはり1週間程度の時間を要してしまいご迷惑をお掛けしました。今回のバージョンアップの影響が大きかったことが一因ではありますが、もう少し早く対応するためにはバージョンアップに対するチェック体制を作る必要がありますが、残念ながら現状そこまでの対応をするのは難しい認識です。
従いましてご迷惑をお掛けすることにはなりますが影響が大きなバージョンアップの場合は1週間程度の猶予をいただければ幸いです。//

今後とも何卒宜しくお願い申し上げます。