Cocoonフォーラム

サイト内検索
書き込みの前に以下の3点をご確認ください。
  1. 1つのトピックにつき1つの質問を書き込んでください
  2. 不具合・カスタマイズ対象ページのURLを提示高速化を無効にしてください
  3. 該当部分のキャプチャ・環境情報とともに書き込んでいただけると助かります

何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。

不具合・カスタマイズ対象ページのURL:

相談内容:

不具合の発生手順:

解決のために試したこと:

※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:

※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。

環境情報の取得方法はこちら。
https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
https://wp-cocoon.com/theme-trouble/

フォーラム利用ガイドリンク

  1. フォーラムガイドライン
  2. よくある質問と答え(FAQ)
  3. サポート対象外のケース
  4. 原因不明の不具合用トラブルシューティング
  5. トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw
  6. 真っ白画面でのエラーメッセージの確認方法
  7. ブラウザ環境チェックツール
  8. Cocoonカスタマイズ依頼

フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。

固定ページにカテゴリー別に投稿記事を2...
 
共有:
通知
すべてクリア

[解決済] 固定ページにカテゴリー別に投稿記事を2件ずつ、カテゴリーとタグを含めて表示させたい。

15 投稿
2 ユーザー
15 Reactions
909 表示
いずな
(@izuna)
Active Member Registered
結合: 2年前
投稿: 8
トピックスターター  

【相談内容】
はじめまして、この度はじめてCocoonを使わせていただきました。

《やりたいこと》
固定ページの一部にカテゴリー別に投稿記事を2件ずつ表示させていです。
表示させたい内容は以下の通りです。
・サムネイル
・タイトル
・カテゴリー
・タグ
どうしても自分ではカテゴリーとタグの表示ができませんでした。

《解決のために試したこと》
(1)新着記事一覧を表示するショートコードを使用。
 →サムネイルとタイトルの表示はできました。
(2)ブログカードの使用。
 →サムネイルとタイトルの表示はできました。
※画像を添付いたします。

《環境情報》
只今ローカルでサイトを作成の為、URLはありません。
以下環境情報です。
----------------------------------------------
テーマ名:Cocoon
バージョン:2.4.7
カテゴリ数:9
タグ数:11
ユーザー数:2
----------------------------------------------
子テーマ名:Cocoon Child
バージョン:1.1.3
style.cssサイズ:1116バイト
functions.phpサイズ:203バイト

いろいろと検索いたしましたが解決に至らず、こちらでご相談させていただきました。
ご教授いただけますと幸いです。
どうぞよろしくお願いします。


   
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3149
 

●回答
残念ながら、標準のカードでカテゴリー、タグを表示する機能はないと思います。
この為、functions.phpに自作のショートコードを追加する事となります。

●確認事項
カード全体がリンクとなっている為、カテゴリー、タグからカテゴリー一覧、タグ一覧へのリンクを付ける事はできません。
この為、実現しても記事一覧と同じ単なるラベルとなります。


   
いずな
(@izuna)
Active Member Registered
結合: 2年前
投稿: 8
トピックスターター  

@chu-ya

はじまして。ご回答いただきましてありがとうございます!

> 標準のカードでカテゴリー、タグを表示する機能はないと思います。
 そうなんですね、承知しました。

つきましてはchu-ya 様が添付してくださった画像の様にfunctions.phpに自作のショートコードを追加してカテゴリー、タグを表示する方法を、具体的に教えていただくことは可能でしょうか?

お忙しいところお手数おかけしますが、よろしくお願いします。


   
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3149
 

提供にあたり以下を再確認したく。

●使用にあたり
PHPを追加する為、自己責任でお願いします。一切の責任を負いません。
CSSについてはご自信でお願いします。

●仕様確認
指定したカテゴリーIDを、投稿順で2件表示します。
それとも投稿IDを2件指定(指定順)する方がいいですか?


   
いずな
(@izuna)
Active Member Registered
結合: 2年前
投稿: 8
トピックスターター  

@chu-ya

ご返信ありがとうございます!

注意事項について、かしこまりました。
すべて自己責任で行います。

仕様につきましては、投稿IDを2件指定(指定順)でお願いできればと思います。

どうぞよろしくお願いします!


   
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3149
 

@izuna さん

●説明
本コードはnavi_listを流用しています。

  • type=カードに枠線を表示する
  • bold=記事タイトルを太字

スニペットの部分に、カテゴリー、タグを出力するように改造しています。
カテゴリー、タグのclassは親テーマのclassに合わせ、cat-link、tag-linkとしています。
ショートコード名(my_list)も含め、必要に応じ変更して下さい。

●使い方

[my_list id="投稿ID,投稿ID"]

投稿IDは3個以上でも表示できます。
必ずカンマで区切って指定して下さい。

●お願い事項
恐れ入りますが、解決済みの場合、「解決済み」リンクをクリックをお願いします。

●方法
functions.phpに以下のコードを追加します。

add_shortcode('my_list', function($atts) {
  extract(shortcode_atts(
    array(
      'id' => [],
    ), $atts
  ));

  if (!($id)) return '';
  $aryId = explode(',', $id);

  // 投稿取得
  $args = array(
    'posts_per_page'=> -1,
    'orderby'   => 'post__in',
    'post_type' => 'post',
    'post__in'  => $aryId,
  );

  $the_query = new WP_Query($args);

  if ($the_query -> have_posts()) {
    while ($the_query -> have_posts()) : $the_query -> the_post();
      $snippet_text ='';

      // カテゴリー作成
      $categories = get_the_category();
      $snippet_text = '<div class="entry-categories">';
      foreach ($categories as $category) {
        $snippet_text .= '<span class="cat-link">' . $category->name . '</span>';
      }
      $snippet_text .= '</div>';

      // タグ作成
      $snippet_text .= '<div class="entry-tags">';
      $tags = get_the_tags();
      foreach ($tags as $tag) {
        $snippet_text .= '<span class="tag-link">' . $tag->name . '</span>'; 
      }
      $snippet_text .= '</div>';

      // カード作成
      $atts = array(
        'prefix'  => WIDGET_NAVI_ENTRY_CARD_PREFIX,
        'title'   => get_the_title(),
        'url'     => get_the_permalink(),
        'snippet' => $snippet_text,
      );
      $html .= get_widget_entry_card_link_tag($atts);
    endwhile;

    // wrap作成
    $atts = array(
      'bold' => '1',
      'tag'  => $html,
      'type' => '2'
    );
    $html = get_navi_card_wrap_tag($atts);
  }

  //グローバル変数復元
  wp_reset_postdata();

  return $html;
});

   
いずな
(@izuna)
Active Member Registered
結合: 2年前
投稿: 8
トピックスターター  

@chu-ya

ご返信・コードのご提供感謝申し上げます!

早速子テーマのfunctions.phpにコードを追加いたしました。
カードの表示は問題ありませんでしたが、エラーメッセージが表示されてしまいました。
エラーメッセージは以下の通りです。

Warning: Undefined variable $html in C:\xampp\htdocs\wp_2\wp-content\themes\cocoon-child-master\functions.php on line 56

子テーマのfunctions.phpの56行目を確認したところ
$html .= get_widget_entry_card_link_tag($atts);
というコードが記入されております。

phpに疎くてエラーの修正方法がわからず、大変申し訳ありませんがご教授いただけますと幸いです。
よろしくお願いします!


   
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3149
 

@izuna さん

$htmlの期化義が漏れていたので試しに、以下を追加して貰えますか?
デバッグモードで細かな確認をしてないのでwarningはあるかと思います。

  $html = null;←これ
  // 投稿取得
  $args = array(

   
いずな
(@izuna)
Active Member Registered
結合: 2年前
投稿: 8
トピックスターター  

@chu-ya

ご返信ありがとうございます!

コードを追加したのですが、添付画像の通り、以下のエラーが出てしましました。

syntax error, unexpected variable "$html"

自分でも調べてみます。

よろしくお願いします!


   
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3149
 

@izuna さん

コピペしたなら前に意図しないコードが入っている可能性があります。
再度、functions.phpを開き直し(前の状態を破棄)、直接入力して貰えますか?


   
いずな
(@izuna)
Active Member Registered
結合: 2年前
投稿: 8
トピックスターター  

@chu-ya

度々失礼いたします!

再度functions.phpを記入し直したところ、無事エラーが解決され、表示もうまくいきました!
こちらの件、解決済みとさせていただきます。

この度は本当にありがとうございました。
ご丁寧に教えていただき、感謝申し上げます。
また機会がございましたらよろしくお願いします!


   
わいひら reacted
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3149
 

@izuna さん

解決されて良かったです。
恐れ入りますが、「解決済み」リンクをクリックして頂けると、作者わいひらさんの負担も減り助かります。


   
いずな reacted
いずな
(@izuna)
Active Member Registered
結合: 2年前
投稿: 8
トピックスターター  

@chu-ya

お世話になっております!
「解決済み」ボタンを押したつもりですが、反映されてないでしょうか?
こちらの画面ではグリーンのチェックマークが見えるのでおそらく反映されたかと思います。
すみませんが、よろしくお願いします!


   
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3149
 

@izuna さん

「解決済み」となっています。

●補足

先も書きましたが、Cocoonのnavi_listを流用しています。
この為、コード中の以下(63行目)の値を変更する事でカードの形を変える事ができます。

'type'=>'2'

  • default:通常のリスト
  • border_partition(or 1):カードの上下に区切り線を入れる
  • border_square(or 2):カードに枠線を表示する
  • large_thumb:大きなサムネイル表示
  • large_thumb_on:大きなサムネイルにタイトルを重ねる

   
いずな
(@izuna)
Active Member Registered
結合: 2年前
投稿: 8
トピックスターター  

@chu-ya

ご確認いただきましてありがとうございます!

ご丁寧に補足の説明も追加していただき大変助かります!
こちらを参考に色々とカスタムできればと思います。

この度は本当にありがとうございました。
心より感謝申し上げます。


   
わいひら reacted
共有:

問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。

また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。

「いいね!」機能はフォーラム登録者のみが利用できる機能です。

CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。

フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。

最近の書き込みはこちら。

詳細なカスタマイズ依頼をするならこちら。

タイトルとURLをコピーしました