Получать пользовательские поля сообщений из нескольких обменов

Я регистрирую несколько обменных ячеек в своих панелях сообщений для записи. В functions.php:

$meta_boxes[] = array( 'id' => 'products', 'title' => 'Products', 'pages' => array('post', 'page', 'link'), // multiple post types, accept custom post types 'context' => 'normal', // normal, advanced, side (optional) 'priority' => 'high', // high, low (optional) 'fields' => array( array( 'name' => 'something', 'id' => $prefix . 'something', 'desc' => 'some description', 'type' => 'checkbox' ), //continue with other fields ) ); //another metabox $meta_boxes[] = array( 'id' => 'customers', 'title' => 'Customers', //etc... 

Я могу получить все значения полей в сообщении, используя:

 $custom_field_keys = get_post_custom_keys(); foreach ( $custom_field_keys as $key => $value ) { $valuet = trim($value); if ( '_' == $valuet{0} ) continue; echo $value . ":<br />"; echo get_post_meta($post->ID, $value, true) . "<br/><br/>"; } 

Как я могу получить имена и значения всех полей в пределах метабокса, которые я указываю. Например, получите все значения полей в метабоксах id «products».

Если я правильно понял ваш вопрос, вы бы хотели получить все метаданные для «продуктов» во всех сообщениях. Другими словами, в нескольких сообщениях есть метаданные с ключевыми «продуктами», и вы хотите получить эти значения. Если это правильно, вы должны использовать get_post_custom_values , который хорошо документирован в кодексе: http://codex.wordpress.org/Function_Reference/get_post_custom_values .

В качестве побочного примечания вы используете Meta Box API для своих мета-ящиков. Если нет, вы определенно должны. Я бы рекомендовал взглянуть на эти две статьи, чтобы начать работу с мета-боксами:

http://codex.wordpress.org/Function_Reference/add_meta_box

http://www.wproots.com/complex-meta-boxes-in-wordpress/ (В интересах полного раскрытия я написал это, и он полностью посвящен теме)

Просто используйте http://www.farinspace.com/wpalchemy-metabox/ и поблагодарите меня позже 🙂