私はちょっとここで立ち往生しています。私はそれにいくつかの記事をWordpressのメニューがあります。私が欲しいのは、すべての投稿をオブジェクトとして取得することです。
私はかなり近いと思いますが、SQLクエリは思ったようには動作しません。
これは私がこれまでに持っているワットです:
$querystr = "
SELECT wposts.* FROM wp_posts wposts
LEFT JOIN wp_postmeta wmeta ON wposts.ID = wmeta.post_id
LEFT JOIN wp_term_relationships wrel ON wrel.object_id = wmeta.meta_value
LEFT JOIN wp_terms wterms ON wrel.term_taxonomy_id = wterms.term_id
WHERE wterms.term_id= $menu_id
";
$posts = $wpdb->get_results($querystr, OBJECT);
私はそれがばかげた小さなSQLロジックエラーであると確信しています、しかし私は本当にそれを見つけることができません..
私は最近同じものを必要としていました、私はカテゴリーのメニューを持っていました、そして私はメニューのカテゴリーを得る必要がありました。 WPコアを掘り下げて数時間後、私は wp_get_nav_menu_items() 関数を見つけました。
私は最終的にこれで来ました、220は私のmenu_idでした
$navcat = wp_get_nav_menu_items('220');
foreach ($navcat as $obj) {
$catid = $obj->object_id;
$category = get_category($catid);
...
...
}
あなたが投稿のナビゲーションメニューを持っているのであれば、私はあなたが同じことができると思います、このような何かが動作するはずです -
$nav_items = wp_get_nav_menu_items('220');
foreach ($nav_items as $obj) {
$objid = $obj->object_id;
$postobj = get_post($objid);
//do stuff with the post..
}
複雑なmySQLクエリを節約できると思います。
ナビゲーションメニューをオブジェクトとして取得する関数があります。 wp_get_nav_menu_object()
- アイテム(投稿)はオブジェクト内にあり、アクセス可能です。