2012-06-22 6 views
0

J'écris un plugin wordpress pour mon site qui remplace (ou ajoute s'il est vide) une valeur du champ personnalisé basé sur le valeur d'un autre champ personnalisé sous la même publication.Wordpress: Remplacer la valeur du champ personnalisé en fonction de la valeur d'un autre champ personnalisé

Exemple: Je vais avoir une liste avec des valeurs par des virgules divisés comme ça:

pomme, rouge banane, jaune kiwi , vert etc.

Quand je vais exécuter le script, il sera trouver un post avec custom_field_fruit où sa valeur est "apple" et changera la valeur de custom_field_color en rouge, dans le même post, bien sûr. Ensuite, il traitera la deuxième ligne de la liste et trouvera un post avec custom_field_fruit = banana et changera custom_field_color = yellow, etc.

Donc, j'ai besoin d'aide avec la partie difficile. Je pense que c'est plus question mySQL que Wordpress ou même question PHP. J'attribue deux variables $ VALUE1 et $ VALUE2 (fruit, couleur). Est-ce que je fais cela entièrement avec une requête mySQL pour remplacer les champs?

Si tel est le cas, quelqu'un peut-il traduire cela en requête mySQL? Trouvez un post où custom_field_fruit est $ VALUE1 et remplacez la valeur de custom_field_color par $ VALUE2 sous la même publication.

Toutes les idées sur comment je peux le faire sont appréciées. Je vous remercie.

+0

Peut-être que les gens à http://wordpress.stackexchange.com/ peuvent gérer mieux/plus vite le schéma de base de données wordpress :) – biziclop

Répondre

0

Je pense que le problème serait mieux résolu avec un mélange de PHP et de SQL. Voici ma tentative. Le dictionnaire doit être rempli par le reste de vos paires clé-valeur:

$dict = ["apple" => "red", 
     "banana" => "yellow"]; 

foreach ($dict as $fruit => $color) 
    mysqli_query("UPDATE wp_posts 
        SET custom_field_color = '$color' 
        WHERE custom_field_fruit = '$fruit'"); 

Vous pouvez même faire le traitement en vrac, au lieu d'aller ligne par ligne!

Questions connexes