こういうSQLをぬるっと書けば良い。
余計な条件も書いてあるのは見る人が見れば分かる。
あははん。
全部拾いたいなら全部書けばいいけど、そんなん面倒くさいから動的に書くでしょ。
postgresql ならviewが作れたはずだけどな。。。。とか思って調べたらmysqlでも使えるようになってた。view登録するのもありやな。
SELECT * FROM wp_posts AS p1 JOIN wp_term_relationships AS tr1 ON tr1.object_id = p1.ID JOIN wp_term_taxonomy AS tx1 ON tx1.term_taxonomy_id = tr1.term_taxonomy_id JOIN wp_terms AS tm1 ON tx1.term_id = tm1.term_id WHERE post_status = 'publish' AND post_type = 'post' AND tm1.slug = '<slug>' AND tx1.taxonomy = 'category' UNION SELECT * FROM wp_2_posts AS p2 JOIN wp_2_term_relationships AS tr2 ON tr2.object_id = p2.ID JOIN wp_2_term_taxonomy AS tx2 ON tx2.term_taxonomy_id = tr2.term_taxonomy_id JOIN wp_2_terms AS tm2 ON tx2.term_id = tm2.term_id WHERE post_status = 'publish' AND post_type = 'post' AND tm2.slug = '<slug>' AND tx2.taxonomy = 'category' ORDER BY post_date DESC
実際使うにはもうすこし工夫がいるんだけどそれは書かない。
ていうか、せっかく同じDBん中にデータ入ってるのになんで使わないのよ・・・
DBに任せた方が早いに決まってるじゃないの。
追記:
マルチサイト系の関数に、もしかしたら追加されてるかもしれないと思って探したけど、やっぱり未だにない。
あるのは get_blog_post() get_most_recent_post_of_user() くらいで、他に新着を拾うような関数ないし。
マルチサイト機能入れてんのに、そういうのができないのって結構片手落ちな感じする。