メモ書き。
からの続き。
やりたいこと
SWELLのブログパーツ「投稿リスト」を使ったときの記事の並び順を五十音順にしたい。
現状
SWELLの標準仕様は以下のようになっている。
投稿の表示順序
- 新着順
- 更新日順
- 人気順
- ランダム
多くの場合上記仕様で問題ないのだが、今回作りたいサイトではすべての記事の並び順を「五十音順」にしたい。ブログパーツによる「新着記事一覧」でも同じようにしたい。
調査
SWELLのソースを調査した結果を以下にまとめていく。
調査対象:
swell-2-5-6-5.zip
ソースツリー:
(すべてを列挙していくと切りが無いため関係ありそうなとこだけ)
swell
└ assets
└ build
└ blocks
└ post-list
└ index.asset.php
└ index.js
└ classes
└ Legacy_Widget
└ SWELL_New_Posts.php 最終的に「get_parts( 'parts/post_list/loop_by_widget')」を呼び出してる
└ languages
└ lib
└ gutenberg
└ block
└ post-list.php
└ parts
└ post_list
└ infeed_ad.php
└ loop_by_slider.php
└ loop_by_widget.php
└ loop_main.php
└ loop_sub.php
└ related.php
└ rss.php
└ style_big.php
└ style_normal.php
└ style_simple.php
└ item
└ date.php
└ pagination.php
└ rss_meta.php
└ thumb.php
└ style
└ rss_normal.php
└ rss_simple.php
└ src
└ gutenberg
└ blocks
└ post-list
└ block.json
└ panel
└ scss
└ _editor.scss
└ tmp
└ front.php
└ poplular.php
並び順に関するコード
(index.js | build/blocks/post-list/index.js)
const p=
[
{label:"新着順",value:"date"}
, {label:"更新日順",value:"modified"}
, {label:"人気順",value:"pv"}
, {label:"ランダム",value:"rand"
}
]
, R=
[
{label:"降順",val:"DESC"}
, {label:"昇順",val:"ASC"}
]
(post-list.php | lib/gutenberg/block/post-list.php)
function cb_post_list( $attrs, $content ) {
$args = [
'post_type' => $attrs['postType'],
'order' => $attrs['order'],
(一部省略)
'orderby' => $attrs['orderby'],
(一部省略)
];
(一部省略)
\SWELL_THEME\Parts\Post_List::list_on_block( $args );
}
外部リンク
SWELLの投稿リストは内部でWP_Queryを呼び出しているっぽい。投稿リストブログパーツで設定したパラメータをそのままWP_Wueryに引き渡しているっぽい。
カスタムフィールドの値でソートする方法を解説している以下の記事で解決できるかも。
コメント