CG
(@du-bist-der-lenz)
「Child Pages Shortcode」プラグインは、固定ページで親子関係になっている場合、その親ページに、その親に属する子ページを表示するプラグインだったと思います。一時、プラグインとして使いましたが、読み込みにメモリーを消費するのでやめています。
「固定ページなしで投稿のみを作成しています。」とあり、目的が掴みかねています。
固定ページに特定のカテゴリーに属する投稿を一覧したいということとは違うのでしょうか。
それとも、投稿ページに固定ページの一覧を挿入したいのでしょうか。
投稿はカテゴリーで親子関係をつくれます。その場合の、親カテゴリーに属する子カテゴリーの一覧は出来ます。
ご返信くださりありがとうございます。
説明不足で申し訳ありません。
投稿ページに投稿記事の一覧(子カテゴリ記事)を表示させたいと思っています。
一応WEBという親のページがあり、そこにショートコードを入れてみたのですが反応なしという状況です。
よろしくお願いいたします。
CG
(@du-bist-der-lenz)
繰り返しますが、「Child Pages Shortcode」プラグインは、固定ページで親子関係になっている場合、その親ページに、その親に属する子ページを表示するプラグインです。
「WEBという親のページ」、と言うのは固定ページでしょうか。親カテゴリーということでしょうか。
(親カテゴリー)WEBに(子カテゴリー)Webshop、Webtool、Websiteの3つが属している。
そのうえで、どのように一覧したいのでしょう。
申し訳ありません。
投稿ページ(親カテゴリ)に投稿記事の一覧(子カテゴリ記事)
なのでwebというのは投稿記事の親カテゴリーです。
child pages shortcodeの様にボックスが並んでいればというところなのですが、アイキャッチなどはないのでタイトルと本文の一行目くらいが一覧で見れたらと思っています。
最低タイトルだけ並べればいいなです。
またわかりずらかったらすみません。
CG
(@du-bist-der-lenz)
投稿にアイキャッチがなければ、サムネイルはつきませんが、グリッド表示か、リスト表示かは、使用テーマのアーカイブページのレイアウトに、基づくものになります。
そこで、次の要点となるのは、3つの子カテゴリーを、どう一覧するのかというところになります。
リスト表示で十分かと思っています。
理想を言いますと正方形のボックス内に横並びでタイトルと本文が少し入っているといいなと。
理想は置いて、ページ上部には親カテゴリの説明文を入れるのでその下に
【例】
WEB
説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文説明文
[Webshop]
タイトル1
本文本文本文本文本文…
タイトル2
本文本文本文本文本文…
[Website]
タイトル1
本文本文本文本文本文…
タイトル2
本文本文本文本文本文…
タイトル3
本文本文本文本文本文…
[website]
タイトル1
本文本文本文本文本文…
タイトル2
本文本文本文本文本文…
タイトル3
本文本文本文本文本文…
このように各カテゴリ3~5記事ずつ、リストで見れればです。
こんにちは
文章で説明しようと思ったけど長くなりそうだったので、コード書いてもうた。
get_categories 関数、get_posts 関数等の使い方は Codex 等で調べてみてください。
とりあえず、ショートコードという形で実装してみました。
ショートコードの使い方
[child_categories_excerpt parent="親カテゴリーのID" count="表示する子カテゴリーの記事数"]
functions.php 等に
function child_categories_excerpt_shortcode( $atts ) {
global $post;
$atts = shortcode_atts( array(
'parent' => 0,
'count' => 5,
), $atts, 'child_categories_excerpt' );
$output = '';
$output .= '<div class="child-categories-excerpt">';
$categories = get_categories( array(
'orderby' => 'name',
'parent' => $atts['parent'],
) );
foreach ( $categories as $category ) {
// 子カテゴリーのタイトル
$output .= '<h3><a href="' . get_category_link( $category->term_id ) . '">' . $category->name . '</a></h3>' . "\n";
$myposts = get_posts( array(
'posts_per_page' => $atts['count'],
'category' => $category->term_id,
) );
foreach ( $myposts as $post ) {
setup_postdata( $post );
$output .= '<div class="child-categories-excerpt-post-container">';
$output .= '<h4><a href="' . get_the_permalink() . '">' . get_the_title() . '</a><h4>';
$output .= get_the_excerpt();
$output .= '</div>' . "\n";
}
wp_reset_postdata();
}
$output .= '</div>' . "\n";
return $output;
}
add_shortcode( 'child_categories_excerpt', 'child_categories_excerpt_shortcode' );
表示の処理はよしなに。
ありがとうございます!!
むしろ大変ありがたいです;)
早めに一度試してみます。
細かい修正は何とか調べますので、無知なため上手くいかずお書きいただいたコードでまたお伺いするかもしれません汗
本当にありがとうございます
ishitaka 様
早速ご質問すみません。
投稿ページ WEB(親カテゴリ)のほかにも同様に複数親があり、
function.phpの子カテゴリ―のタイトルですが、他の子カテゴリ―も全て「,」で区切って記入していいのでしょうか?
親カテゴリのidは、webという投稿ページになるのでwebのページにwebのidを入れたのですが、間違ってないでしょうか?
今タイトルwebの投稿記事(親になるページ)にショートコードを入れて、子カテゴリのスラッグとタイトルどちらでも試してみたのですがそのままショートコードが表示されて・・・
http://laf-my.xyz/web/web/
親にしたいページが上記です、いまコードが表示されたままにしています。
お時間ある際に教えていただけると幸いです。
ショートコードの parent には、投稿ページの ID ではなく、カテゴリーの ID を指定してください。
カテゴリーの ID を調べる方法は、下記のページ等を参考にしてみてください。
http://webkaru.net/wordpress/post-category-id/
親カテゴリーとは、親となる投稿のことでしょうか?
親となる投稿毎に、ショートコードを記述(parent は夫々の親カテゴリー ID で)してください。
ishitaka様
感動です!!!
すみません、感動のあまりテンション上がってます。
無事表示することができました:)
他の親子に関しても問題ないようです♪
とても勉強になりました。IDにパターンがあることは知らなかったのでそもそもでした。
サイトの方お伺いさせていただいて勉強したいと思います
ありがとうございましたー!