前提・実現したいこと
WordPressのカテゴリリストを表示するプラグインを作ろうとしているのですが、get_categories()で取得した配列を返す良い方法が判りません。
発生している問題・エラーメッセージ
php
1function cate(){ 2 $args = array( 3 'orderby' => 'name' 4 ); 5 6 $categories = get_categories( $args ); 7 foreach ( $categories as $category ) { 8 $cat_link = get_category_link($category->cat_ID); 9 echo '<li class="category-list__item"><a href="' . $cat_link . '">' . $category->name . '</a></li>'; 10 } 11} 12 13add_action( 'wp_head', 'test' ); 14function test(){ 15 $output = "<div>".cate()."</div>"; 16 echo $output; 17}
wp_headのフックを使ってHTMLを表示させ、あとはCSSやJSで場所を調整して、カテゴリリストをスライドインさせているのですが、foreachのechoではdivの中ではなく、一番上に表示されてしまいます。
ですので、cate()の戻り値として配列の中身を文字列として返す方法を教えて頂けないでしょうか?
そもそも、カテゴリリストを横からスライドインさせるという目的を、wp_headにフックする方法で実現させるのは間違っているかもしれません。どうすればいいか調べた上で、この方法にしたのですが、この方法が変でしたら、ご指摘いただけると有り難いです。
(一応カテゴリ以外の表示するエリアは思ったとおりに表示されるのですが、$output = の行にそのほかの要素を付け加えていくとコードがすごく汚くて見にくいです。)
試したこと
get categoriesの他に、wp list categories、get_the_categoryの関数を試しましたが、その記事のカテゴリしか表示されなかったり、その関数内でカテゴリが出力されてしまい、divの中に入らなかったりして実現不可能でした。
補足情報(FW/ツールのバージョンなど)
ヒントになるような情報を頂けると嬉しいです。何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/11 16:49