3

カスタムフィールドが存在するかどうかを確認するためのかなりの作業条件があります。これは次の行です:

if (((get_post_meta($post->ID, $my_metakey, TRUE))=='')

ただし、お気づきのように、値が空に設定されている場合にのみ、メタ キーのチェックが有効になります。

デフォルトでメタ値を空または空白に設定した場合でも、カスタム フィールド名/メタ キーがデータベースに既に存在するかどうかを確認する方法を知りたいです。

WordPressでこれを行う効率的なアプローチはありますか? ヒントをありがとう。

更新:これも機能しません:

<?php if (strlen(get_post_meta($post->ID, $metakey, true)) > 0) : ?>

カスタムフィールドが空かどうかを確認するのと似ています。

4

2 に答える 2

14

WP 3.3.0 では、より良い方法があります: キャッシュを使用してフィルターを適用します。

 metadata_exists( 'post', $post->ID, $my_metakey )
于 2012-12-11T08:15:23.923 に答える
4

カスタムフィールドの値は、wp_postmetaWordPressデータベーステーブルに保存されます。だからこれを使うだけです:

$test = $wpdb->get_results( "SELECT meta_key FROM wp_postmeta where meta_key='name_of_custom_field'" );
if (($wpdb->num_rows)>0) {
    // custom field exists
}
else {
    // field does not exist 
}
于 2012-12-11T07:59:10.327 に答える