Intereting Posts

Сохранение данных для разных пользовательских сообщений

У меня есть три разных типа записей:

register_post_type( 'foo' , $args ); register_post_type( 'bar' , $args ); register_post_type( 'baz' , $args ); 

Когда я создаю новое, скажем, сообщение «foo», я хочу сохранить мета-поле для «foo», что мне делать?

add_action ('save_post', 'save_details');

Итак, если мой post_type был вызван «foo_post»:

 add_meta_box( $id, $title, $callback, // SPECIFY THE POST TYPE HERE!!! "foo_post", $context, $priority, $callback_args ); 

Что мне делать, чтобы сохранить мета-поле «foo post» при создании / редактировании страницы «foo post»?

Поскольку save_post дает вам post_id текущего сообщения, вы просто хотите проверить, какой post_type он использует, используя get_post_type ($ post_id)

как:

 add_action('save_post', 'save_details') function save_details($post_id) { $post_type = $_REQUEST['post_type']; if ('foo_post' == $post_type) { // save stuff for foo_post } elseif ('bar_post' == $post_type) { // save stuff for bar_post } } 

и так далее…

get_post_type () codex-страница

Я предполагаю, что вы говорите о метаположении пользовательских сообщений? Если это так, то вам нужно убедиться, что вы * укажете $posttype при вызове add_meta_box() . например:

 <?php add_meta_box( $id, $title, $callback, // SPECIFY THE POST TYPE HERE!!! $post_type, $context, $priority, $callback_args ); ?> 

Если вы не ссылаетесь на мета-поле персонализированного сообщения, вам нужно предоставить дополнительную информацию о том, какой почтовый метаполе вы пытаетесь манипулировать.