WooCommerceのWebサイトで、WP-Typesプラグインを使用して製品にカスタムフィールドを追加しました。ウェブサイトは基本的にブログである「ニュース」というセクションを持っています。
WP-Typesプラグインで追加したカスタムフィールドを含めることで、欲しい商品をブログ投稿に挿入する方法を教えてください。
そのためのカスタムショートコードを作成することは可能ですか(商品IDとしてパラメータを受け入れ、カスタムフィールドのショートコードを含むショートコード)。あるいは、商品テンプレートコードのPHPコードを使用してフィールドの値を取得するというオプションがあるかもしれません。
ご存知かもしれませんが、投稿メタデータが新しいテーブル$ wpdb-> postmetaに保存されている可能性があります。このテーブルには4つのフィールドがあります。
テーマでメタデータを使用するには、 get_post_meta() 関数を使用します。
get_post_meta($post_id, $key, $single);
その仕組みは次のとおりです。
そしてそれをショートコードで使うには、これをあなたの子供のテーマfunctions.phpに追加してください。
function your_function_name( $atts ) {
$a = shortcode_atts( array(
'id' => get_the_ID(),
'key' => '',
'single' => 'true',
), $atts );
return get_post_meta($a['id'], $a['key'], $a['single']);
}
add_shortcode( 'shortcode_text', 'your_function_name' );
上記の関数はこのショートコードを作成します:[shortcode_text id="" key="" single=""]
。
あなたがWordPressのループで現在のアイテムのIDを取得したいのであれば私が以前に言ったように私はデフォルト値をget_the_ID()
に設定したのでid=""
を完全に省きます。また、単一の値だけを取得したい場合は、デフォルトをtrueに設定し、single=""
を省略することができます。