【スポンサーリンク】

[Cocoon] 記事の関連タグをサイドバーに表示した・その2(ショートコードにできた)

[Cocoon] 記事の関連タグをサイドバーに表示した・その2(ショートコードにできた)

結論としては、the_tag_links() ではなく、get_the_tag_links()を呼べばよかっただけでした。

\記事が役に立ったらシェアしてね/
【スポンサーリンク】

1. 以前の方法の問題点

以前、記事の関連タグをサイドバーに表示するときに、ショートコードにできず、テキストウィジェットでPHPコードを実行する、という方法でむりやり解決していました。

ただし、この方法はウィジェットを確認するたびに、ビジュアル表示になって「コードが評価」されててまうため、作り直しが必要でした。

以前の方法の問題点

ウィジェットを確認するだけで壊れてしまうのです……

その後、WordPressやCocoonのソースコードの理解が深まったので、もう一度 「関連タグ」のショートコードを作成してみようと思います。

2. the_tag_links()の関数定義を確認する

まずは、GitHubでcocoon-masterからソースコードをzip形式でダウンロードします。

展開してからターミナルで開き、grepコマンドで「the_tag_links()」をソースコード全体から探します。

the_tag_links()の関数定義を確認する
the_tag_links()の関数定義を確認する

grepでは、-nrオプションをつけると、フォルダ内を再帰的に検索してくれるようになります。

/lib/utils.php“の125行目で定義されていることがわかりました。

ソースコードでthe_tag_links()の中身を確認すると、なぜうまくいかなかったのかわかりました。

the_tag_links()の関数定義を確認する

文字列を返すのではなく、「echo」を実行していたからです(126行目)。

3. ショートコード用関数でget_the_tag_linksを呼び出す

実際にタグ一覧のHTMLを構成して、文字列として返しているのは、「get_the_tag_links()」関数です。ですので、これをショートコードの関数で使用して、返せばよいことになります。

ショートコード用関数でget_the_tag_linksを呼び出す

テーマエディタで「functions.php」に以下のコードを追加します。

/** タグのショートコードを作る*/
function generate_tags( $atts ) {
        return get_the_tag_links();
}
add_shortcode( 'tags', 'generate_tags' );

これでtagsショートコードで、geterate_tags関数の結果が出力できるようになりました。

ショートコード用関数でget_the_tag_linksを呼び出す
ショートコード用関数でget_the_tag_linksを呼び出す

あと一歩ソースコードを読んでいれば、解決していたのですね。

当時は、ソースコードの検索もコマンドではなく、一つずつファイルを開いて探していたので、力尽きていました。grepさまさまです。

こちらもどうぞ。

[Cocoon] 記事のタグをサイドバーに表示した(タグクラウドではない)
[Cocoon] 記事のタグをサイドバーに表示した(タグクラウドではない)
ブログのサイドバーの項目を見直してみました。WordPressのサイドバーに記事のタグを追加したカスタム検索とナビゲーションメニューの間に、・リンク・目次・タグ・関連記事を追加しました。とくに、記事のタグを追加するのが、大変だったのでメモします。「タグ」を表示する今回、サイドバーにタグを設置しようと思ったのは、検索が面倒な人に関連記事を探しやすくしたいからです。Cocoonテーマでは、記事のタイトル上下や本文下には、「タグ」を表示することができます。Cocoonの投稿にタグを...
Cocoonで作った注目記事ランキングのショートコードを修正した
Cocoonで作った注目記事ランキングのショートコードを修正した
Cocoonテーマのコードを利用して、自前の「注目記事ランキング」を作っていたのですが、更新によってエラーになってしまいました。改めて、コードを修正して直すことができました。サイトのPHPにエラーがある教室ホームページを見たら、ページにエラーが表示されて、レイアウトが崩れていることに気づきました。(2022年10月17日)。このサイトで重大なエラーが発生しました。WordPressのトラブルシューティングについては、こちらをご覧ください。このエラーは、WordPressサイト...
QRコードを読み込むと、関連記事を確認できます。

[Cocoon] 記事の関連タグをサイドバーに表示した・その2(ショートコードにできた)
【スポンサーリンク】
タイトルとURLをコピーしました