Je souhaite utiliser des identifiants uniques, tels que les identifiants vidéo YouTube et les identifiants de publication WordPress, dans un champ personnalisé "youtube_id". Je viens de créer une page d’ajout d’affichage frontal et je veux vérifier si "youtube_id" est utilisé ou non dans un article plus ancien.
$title = 'blah blah blah';
$different=mysql_query("SELECT post_title FROM wp_posts WHERE post_title='$title'");
if(mysql_num_rows($different)>0) {
echo 'Dude, we already have this post.';
}
ce code cherche le titre du post est unique ou pas. J'ai besoin de quelque chose de similaire avec ça. Mais je dois utiliser postmeta, pas post_title.
Une idée de vérifier avec les fonctions WordPress ou MySQL?
PS: Désolé pour mon pauvre anglais.
Cela ne devrait pas être compliqué, donc je ne peux pas m'empêcher de penser que quelque chose me manque. Ce dont vous avez besoin semble être get_post_meta
.
$yid = get_post_meta($post->ID,'youtube_id',true);
if (empty($yid)) {
// not set
} else {
// set
}
Modifier:
Vous avez besoin d'un meta_query
pour la plupart des solutions WordPress-y:
$args = array(
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'youtube_id',
'value' => 'some_value',
)
),
'ignore_sticky_posts' => true,
'no_found_rows' => true,
'posts_per_page' => 1,
'fields' => 'ids',
);
$q = new WP_Query($args);
var_dump($q);
Cependant, votre code est facilement adaptable:
$different = $wpdb->get_var("SELECT meta_id FROM {$wpdb->postmeta} WHERE meta_key = 'youtube_id' AND meta_value = 'some_value'");
if(!empty($different)) {
echo 'Dude, we already have this post.';
}
Remarque: utilisez $wpdb
. Cela vous épargnera des efforts.