Intereting Posts
WP REST API Access-Control-Allow-Origin отвечает на кеширование Каковы наилучшие методы хранения загрузок в WordPress? добавление .current * тегов к пользовательским типам сообщений и таксономии WordPress Core – оптимизация генерируемого meta_query SQL? Показывать случайный контент / фотографии с более ранних сообщений в липкой записи? Получить определенный размер изображения для небольшой ширины окна просмотра Загрузите изображение в wordpress с помощью ionic / cordova с WP REST API V2 WordPress Hook для регистрации пользователя Как отключить или скрыть WordPress.com в качестве опции входа в социальные сети для Jetpack Комментарии Невозможно установить пользовательский заголовок на некоторых настройках WordPress mysite.co.uk/wordpress перенаправляет на mysite.co.uk? Как добавить ярлык Visual Edit к моду темы? Как я перечисляю многопользовательских пользователей только для текущего сайта Отображение имени пользователя на странице регистрации электронной почты или активации с помощью BuddyPress создать статическую копию нижнего колонтитула веб-сайта html

Как я могу установить мета-значение, которое затем повлияет на другие значения post meta?

У меня есть метабокс в моем типе сообщений «ebrd_videos», который устанавливает видео как «отличное видео», используя флажок.

Я хотел бы ограничить количество видео со статусом 'featured = on' до 1. Таким образом, когда я устанавливаю видео как признанное, а также публикую / обновляю это видео, все остальные видеоролики устанавливаются на «featured = off».

Если это помогает, вот код для создания мета-поля:

// Add the Top and Featured News Meta Boxes ----------------------------------------// add_action( 'add_meta_boxes', 'ebrd_add_post_metaboxes' ); function ebrd_add_post_metaboxes() { add_meta_box('ebrd_feat', 'Post status', 'ebrd_feat', 'ebrd_videos', 'side', 'default'); } // Featured Metabox function ebrd_feat(){ global $post; $custom = get_post_custom($post->ID); if(isset($custom["ebrd_home_feat"][0])) $ebrd_home_feat = $custom["ebrd_home_feat"][0]; else $ebrd_home_feat = 'off'; // We'll use this nonce field later on when saving. wp_nonce_field( 'my_meta_box_nonce', 'meta_box_nonce' ); ?> <input type="checkbox" name="ebrd_home_feat" <?php if( $ebrd_home_feat != 'off' ) { ?>checked="checked"<?php } ?> /> Home feature? <?php } add_action('save_post', 'save_details'); function save_details($post_ID = 0) { $post_ID = (int) $post_ID; $post_type = get_post_type( $post_ID ); $post_status = get_post_status( $post_ID ); // if our nonce isn't there, or we can't verify it, bail if( !isset( $_POST['meta_box_nonce'] ) || !wp_verify_nonce( $_POST['meta_box_nonce'], 'my_meta_box_nonce' ) ) return; // if our current user can't edit this post, bail if( !current_user_can( 'edit_post' ) ) return; if(isset($_POST["ebrd_home_feat"])) $ebrd_home_feat = $_POST["ebrd_home_feat"]; else $ebrd_home_feat = 'off'; if ($post_type) { update_post_meta($post_ID, "ebrd_home_feat", $ebrd_home_feat); } return $post_ID; } 

Если вы действительно хотите иметь только один идентификатор сообщения и значение, прикрепленное к нему, я думаю, что лучше будет хранить в таблице опций с помощью add_option, а затем использовать его с помощью get_option ….. таким образом вы будете спасены от головной боли обновления всех сообщений meta сразу после обновления любого сообщения …..