今日は面白い実績を紹介しようと思います!
皆さんは、Wordpressの無料テーマ「Cocoon」をご存知ですか?
僕も実務で結構使っていたりするのですが、
そのWordpressテーマで、不具合が1つあったんです。
そして、その不具合をまだ誰も直していなかったようだったので、
僕が直しました!笑
それで、修正したコードを
作者のわいひらさんに編集リクエスト(pull request)を送ったら、
なんと採用されまして、
「ご協力」の欄に名前が載っていました!🤣🤣
という感じで、僕はWordpressのテーマの不具合も直せちゃうという実績ができて嬉しいです笑✨✨
それと同時に、
多くの方に貢献できたのかもという実感もあって、
やって良かったな〜と思っています。
WordPressの専門的なカスタマイズでお悩みの方は、
もしかしたら何かの力になれるかもしれません☺️
どこが不具合だったのか
このブログでは、少し技術的な部分も解説していきます。
今回の問題は、カスタムタクソノミーのターム編集画面にありました。
具体的には、タグタイトル
・タグ本文
・アイキャッチ
・メタディスクリプション
・メタキーワード
・noindex
を編集しても更新されない不具合でした。
なぜこうなっているかというと、ここの更新処理の仕組みとして、
Cocoonの親テーマ内の「lib/category-tag.php」
に処理が書かれています。
その中を見てみると、修正前のコードでは、post_tag
限定で更新処理をしていました。
以下のような条件分岐です。
if (isset($_POST['taxonomy']) && ($_POST['taxonomy'] === 'post_tag')) {
ここの ($_POST[‘taxonomy’] === ‘post_tag’) が重要で、タクソノミーがpost_tagの時、
つまり、デフォルトである「投稿」のタグの編集画面では更新ができますが、
つまり、カスタムタクソノミーを自分で定義して、そのタームの情報を編集したい時に、
それができなくなってしまうのです。。
例えば、以下の画面のように、
「テスト1」というカスタム投稿タイプを作って、
「テストタクソノミー1」というカスタムタクソノミーを作ります。
その「テストタクソノミー1」でタグ本文などを編集しようと思っても、
「変更を保存」ボタンを押してもなぜか反映されないようになっていました。
でも、ここの処理を以下のように余計な条件を減らすことで、
if (isset($_POST['taxonomy']) {
上手く更新できるようになりました!ということです。
このような感じで変更し、CocoonのGithubレポジトリにプルリクエスト(編集提案)を送ることで、
無事編集が採用されたという経緯でした!
参考になれば幸いです✨
追記:Cocoon2.4.1の修正に取り入れて頂きました
2022年2月1日に、Cocoon2.4.1がリリースされまして、
その修正の中に、私が変更した部分も取り入れて頂きました!
本当に感謝です✨
コメント