Discordコミュニティを作りました! 参加する

フォーラム

トピックを立てる前にチェック
  1. フォーラムガイドライン」に必ず目を通してください。
  2. バージョンアップデート後に表示がおかしくなった場合は、
    「SWELL設定」>「リセット」からキャッシュクリアを先にお試しください。
  3. フォーラム内検索で過去に同じようなトピックがないか検索してみてください。
アイコンショートコードを使ってFont...
 
通知
すべてクリア

アイコンショートコードを使ってFont Awesomeのアイコンが表示できない

3 投稿
1 ユーザー
0 Likes
162 表示
eitoku
(@eitoku)
投稿: 3
メンバー
Topic starter
 

SWELLのアイコンショートコードを使ってFont Awesomeのアイコンを表示することができません。

以下、再現手順となります。

 

1. サイドバーウィジェットにメニューを格納し、タイトルにFontAwesomeのアイコンショートコードを記述して保存。

1 shortcode in widget title

 

2. サイトでアイコンが表示されないことを確認。

2 shortcode result

 

3. 該当部分の出力コードは以下のようになっていた。

3 output html code

出力されたHTMLでは、以下のように「fa-fish」が消えてしまっています。

<i class="fa-solid"></i>

 

4. SWELLのアイコン生成部分のコードは以下。

swell/lib/shortcode.php の54〜63行目。

4 bug on shortcode.php

 

5. 原因

コードを読めばわかりますが、クラス名の配列の1つ目のみ取得して出力しているからです。

XDebugでステップ実行してメモリ内のデータを確認しました。引数 args の配列に2つのデータ「fa-solid」と「fa-fish」が渡され、その後59行目のコード実行で2つめのデータ(fa-fish)が捨てられていることを確認済みです。

確認項目
利用規約に同意します*, ガイドラインを読み、内容を把握しています*, よくある質問を先にチェック済みです*, 過去に同じようなトピックがないか検索済みです*, WordPress更新後、SWELLは最新版にしましたか?, 自分で追加したコードに問題がないかチェック済みです
問題が確認できるページのURL
利用中のSWELL本体のバージョン
2.9.0
利用中のPHPバージョン
8.1.23
OS
MacOS(どのOSでも再現可能)
利用中のWordPressバージョン
6.4.3
利用中のサーバー会社
ローカルのWebサーバーにて確認
ブラウザ
Safari(どのブラウザでも再現可能)
利用中のプラグイン一覧

UpdraftPlus
Useful Blocks
Useful Blocks Pro-Addon
wpForo
導入しているプラグインも本件とは関係ありません。

 
投稿済 : 26/02/2024 5:58 pm
トピックタグ
eitoku
(@eitoku)
投稿: 3
メンバー
Topic starter
 

ステップ実行中の59行目前後のメモリの中身を追記します。

 

1. 59行目実行直前

step 1

argsにクラス名2つが渡されています。

 

2. 59行目実行後

step 2

変数 $iconname には、1つめのクラスしか入りません。

 

そもそも、渡された args['class']の中身が以下のようになることを想定して書かれていると思いますが、実際には上記のように渡されていました。(ウィジェットに設定した場合にだけそうなるのかまでは調べていません)

&quot;fa-solid fa-fish&quot;
This post was modified 2か月前 by eitoku
 
投稿済 : 26/02/2024 6:12 pm
eitoku
(@eitoku)
投稿: 3
メンバー
Topic starter
 

記事内ではFontAwesomeのアイコンが正常に表示されることを確認いたしました。

従って、ウィジェットタイトルに設定した場合に再現される現象ということになります。

 

サイドメニューのタイトルにアイコンを表示したいことがあるため、もし現状の動作が「仕様」として扱われているのであれば、FontAwesomeのアイコンも表示できるようにして頂けるとありがたいです。

 
投稿済 : 26/02/2024 6:31 pm
共有: