複数の投稿をまとめて日付順に並べたい
-
トピック名の通り、普通の投稿とカスタム投稿をまとめて日付の新しい順に10件まで表示するショートコードを作成したいと考えています。
現在、各投稿の一覧を表示するショートコードは存在するのですが、2つの投稿を合わせて表示するショートコードが無く、一から制作しなければいけない状況です。しかし、このショートコードの中身について、私自身が全てコーディングした訳ではないため、仕組みが理解できておらず、どのようにコードを制作すれば良いかわからず、詰まってしまっています。各一覧を表示するコードは、
【ニュース一覧表示(普通の投稿)】function show_news($attr) { //初期値の設定 //件数:10件 extract(shortcode_atts(array( 'max' => '10' ), $attr)); $news .= "<dl>"; $posts_array = array ('post'); //表示数を設定 $news_posts = query_posts(array('numberposts' => $max, 'post_type' => $posts_array)); foreach($news_posts as $post) { $news .= "<dt>"; $news .= "<span class='newsdate' style=color:#000000;>"; $news .= mysql2date('Y年m月d日', $post->post_date); $news .= "</span>"; $news .= $post->post_title; $news .= "</dt>"; $news .= "<dd>"; $text = get_extended( $post->post_content )['main']; $text = apply_filters( 'the_content', $text ); $text = str_replace( ']]>', ']]>', $text ); //「お知らせを詳細ページに飛ばす」が"はい"なら70文字まで表示、続きリンクへ遷移 if ( get_post_meta($post->ID, 'shortjump', true) == 'はい' ) { $news_content = wp_strip_all_tags(strip_shortcodes($post->post_content,0,70)); $news .= "<div class='top_newstext'>".mb_substr($news_content,0,70)."..."."</div>"; $news .= "<a href=".get_the_permalink($post->ID).">続きはこちら</a>"; } else { $news .= $text; } $news .= "</dd>"; } $news .= "</dl>"; return $news; } add_shortcode('news', 'show_news');【ブログ一覧表示(カスタム投稿)】
function show_blog($attr) { //初期値の設定 //件数:10件 //カテゴリ:なし extract(shortcode_atts(array( 'max' => '10', 'cat' => '' ), $attr)); $posts_array = array('column'); if(get_post_type( get_the_ID() ) === 'page'){ $paged = max( 1, get_query_var('paged') ); $offset = ($paged -1) * $max; // 全件数から最大ページ取得 $all_blog_cnt = count( get_posts(array( 'post_type' => $posts_array, 'category' => $cat, 'posts_per_page' => -1 ))); $max_page = ceil( $all_blog_cnt / $max ); // ページネーション追加 $big = 999999999; $args = array( 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'format' => '?paged=%#%', 'current' => $paged, 'total' => $max_page ); $pagination = "<div class=\"pagination\">".paginate_links($args)."</div>"; } // 記事取得 $blog_posts = get_posts(array( 'post_type' => $posts_array, 'category' => $cat, 'numberposts' => $max, 'offset' => $offset )); foreach($blog_posts as $post){ $blog .= "<dt>"; $blog .= "<span class='columndate'>"; $blog .= "<span style=color:#000000;>".mysql2date('Y年m月d日', $post->post_date)."</span>"; $blog .= "<strong>"."ブログを更新しました。"."</strong><br>"; $blog .= "<a href=".get_the_permalink($post->ID).">".$post->post_title."</a>"; $blog .= "</span>"; $blog .= "</dt>"; } if(isset($pagination)){ $blog .= $pagination; } return $blog; } add_shortcode('blog', 'show_blog');となっています。
該当箇所をそのまま張り付けたため、抜けなどありましたら申し訳ございません。この2つをまとめて表示するショートコードを作成するには、どのように作成をすればよろしいでしょうか?ご教示頂けますと幸いです。
13件の返信を表示中 - 1 - 13件目 (全13件中)
13件の返信を表示中 - 1 - 13件目 (全13件中)
トピック「複数の投稿をまとめて日付順に並べたい」には新たに返信することはできません。