特定の値を比較および変更するために、wpdbと連携するための手助けを探しています。私はmysqlの取り扱いに非常に初心者ですので、私は本当にこの問題についての助けに感謝します!
私がやりたいのは、wp dbを調べて、$page_id
と同じIDの投稿を探すことです。投稿が見つかったら、menu_order
の値を確認し、それを$page_order
と比較します。それらが同じであれば何もしませんが、それらが一致しない場合はmenu_order
を$page_order
の値に設定する必要があります。
これが疑似コードです。
$page_id = 45;
$page_order = 1;
if(post_id == $page_id) {
if(menu_order != $page_order) {
set menu_order to $page_order
switch($page_order) {
case "1":
set post meta "color_dropdown" as "pink"
if have child pages set post meta "color_dropdown" as "pink" to them aswell
break;
}
}
}
すべて助けて感謝します!
ありがとう
これは私が使用してしまったものです、私は別のアプローチを使用したので私は子ページにメタ値を適用する必要がないことがわかった。
うまくいけば、それは誰かに役立ちます。
$row = $wpdb->get_row("SELECT * FROM wp_posts WHERE ID ='$post_id'");
$new_order = $order[$page['depth']];
$new_order = $wpdb->escape($new_order);
$current_order = $row->menu_order;
if($current_order != $new_order) {
switch ($new_order) {
case "1":
$color = 'pink';
break;
case "2":
$color = 'green';
break;
case "3":
$color = 'turquoise';
break;
case "4":
$color = 'brown';
break;
case "5":
$color = 'orange';
break;
case "6":
$color = 'pink';
break;
case "7":
$color = 'green';
break;
case "8":
$color = 'turquoise';
break;
case "9":
$color = 'brown';
break;
}
$color = $wpdb->escape($color);
$post_id = $wpdb->escape($post_id);
$wpdb->query("UPDATE wp_postmeta SET meta_value = '$color' WHERE post_id = '$post_id' AND meta_key = 'color_dropdown'")
}