web-dev-qa-db-fra.com

Compare la chaîne avec l'identifiant de publication dans wpdb et effectue des opérations lorsque la correspondance est trouvée

Je cherche de l'aide pour établir des liens avec wpdb afin de comparer et de modifier certaines valeurs. Je suis très novice avec la gestion de mysql, donc j'apprécie vraiment toute aide à ce sujet!

Ce que je veux faire est de passer par la base de données wp à la recherche d’un identifiant identique à celui de $page_id. Lorsque la publication est trouvée, il convient de vérifier la valeur menu_order et de la comparer à $page_order. Si elles sont identiques, ne faites rien, mais si elles ne correspondent pas, définissez menu_order sur la valeur de $page_order.

Voici un pseudo code:

$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;
        }
    }
}

Toute aide appréciée!

Merci

1
INT

C’est ce que j’ai finalement utilisé, s’est avéré que je n’avais pas besoin d’appliquer la méta-valeur aux pages enfants puisque j’utilisais une autre approche.

J'espère que c'est utile pour quelqu'un.

$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'")
}
0
INT