Я создал собственный тип сообщения: «продукты». В этом типе сообщений есть шесть настраиваемых полей, информация которых автоматически импортируется из WP All Import.
Я хотел бы получить информацию из этих 6 настраиваемых полей, используя короткий код. В идеале можно было бы получить информацию, используя пул сообщения, поэтому («код» – это пуля):
[product code="12345678"]
Вышеизложенное должно искать «продукт» с slug 12345678, а затем выводить информацию из этих шести настраиваемых полей.
Как мне подойти к этому?
Получите значение атрибута в shortcode
и получите значения настраиваемого поля:
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";