カスタム商品タイプ「products」を作成しました。この投稿タイプには、WP All Importから自動的にインポートされた情報を含む6つのカスタムフィールドがあります。
ショートコードを使用して、これら6つのカスタムフィールドから情報を取得したいと思います。理想的には、投稿のスラッグを使って情報を取得することが可能であるので、( "code"がスラッグである):
[product code="12345678"]
上記はスラッグ12345678で "product"を探し、次にそれら6つのカスタムフィールドから情報を出力します。
どのように私はこれに取り組むべきですか?
shortcode
のAttribute値を取得し、カスタムフィールドの値を取得します。
function product_func($atts) {
$post_id = $atts['code'];
$key = "my_custom_field_key";//for 1 field, you can do this 6 times for the 6 values
$custom_value = get_post_meta($post_id, $key, true);
return $custom_value;
}
add_shortcode('product', 'product_func');
ポストメタフィールドの値をデバッグする場合は、次のコードを使用してください。
function product_func($atts) {
$post_id = $atts['code'];
//lets check if we are getting the att
echo "<h1>THE ATT, SHOULD MATCH THE CODE YOU SEND</h1></br>";
echo "<pre>";
var_dump($post_id);
echo "</pre>";
//lets check if we are getting the att
echo "</br><h1>WE MAKE SURE THE POST IS NOT NULL, MEANING IT SHOULD EXIST</h1></br>";
$post = get_post( $post_id );
echo "<pre>";
var_dump($post);
echo "</pre>";
//lets check the meta values for the post
echo "</br><h1>WE LIST ALL META VALUES TO CHECK THE KEY NAME OF THE CUSTOM FIELD WE WANT TO GET</h1></br>";
$meta = get_post_meta( $post_id );
echo "<pre>";
var_dump($meta);
echo "</pre>";
$key = "my_custom_field_key";//for 1 field, you can do this 6 times for the 6 values
$custom_value = get_post_meta($post_id, $key, true);
return $custom_value;
}
add_shortcode('product', 'product_func');
これは `カスタムフィールドを取得するのに必要なそれぞれの値を示しています。次のようになります。
だから私の場合キーは次のようになります。
$key = "MY CUSTOM FIELD";