Intereting Posts
Пользовательские столбцы для нескольких пользовательских типов сообщений Войти переадресовать на dynami url – в настоящее время используется переадресация входа в Peter's скрыть старые события Сценарий для замены блогов в блогах по умолчанию с ссылками на мои URL-адреса социальных сетей Изменение автора вложений в медиа с помощью запроса mysql Необычная проблема с пользовательским шаблоном RSS Что это значит: объект класса WP_Error не может быть преобразован в строку функции для создания термина и условий для детей База категорий для URL в пользовательском типе / таксономии Установка плагина (который уже загружен вручную) Добавить уникальный идентификационный номер до конца постоянной ссылки Фильтр «parse_query» по-прежнему действителен для изменения фильтрованного содержимого в представлении списка администраторов? Большой арабский перманент не работает Получить количество сообщений из результатов текущей страницы Можно ли изменить расположение файла журнала для WP_DEBUG_LOG?

Можно ли планировать приложения в WordPress?

Поскольку это довольно хорошо известно, можно запланировать Посты в WordPress для публикации.

Также вложения – это сообщения (в более внутреннем, техническом смысле).

Поэтому вопрос, который меня беспокоит прямо сейчас: возможно ли планировать вложения? Как, например, фотогалерея со временем растет?

Solutions Collecting From Web of "Можно ли планировать приложения в WordPress?"

Моя идея заключается в том, что вы можете настроить дату публикации для вложений. Это можно сделать с помощью attachment_fields_to_edit чтобы показать интерфейс (возможно использование внутренней функции touch_time ).

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

Так

 add_action('load-post.php', 'setup_attachment_fields'); function setup_attachment_fields() { $scr = get_current_screen(); if ( $scr->post_type === 'attachment' ) { add_filter("attachment_fields_to_edit", "add_date_to_attachments", null, 2); } } function add_date_to_attachments( $form_fields, $post = NULL ) { printf('<label for="content"><strong>%s</strong></label>', __('Date')); touch_time( 1, 1, 0, 1 ); return $form_fields; } 

Теперь на странице вложения вы увидите что-то вроде:

Дата прикрепления

Теперь давайте установим дату публикации в приложении save:

 add_filter("attachment_fields_to_save", "save_date_to_attachments"); function save_date_to_attachments( $post ) { foreach ( array('mm', 'jj', 'aa', 'hh', 'mn') as $f ) { $$f = (int) filter_input(INPUT_POST, $f, FILTER_SANITIZE_NUMBER_INT); } if ( ! checkdate ( $mm, $jj, $aa ) ) return; // bad data, man if ( ($hh < 0 || $hh > 24) ) $hh = 0; if ( ($mn < 0 || $mn > 60) ) $mn = 0; $ts = mktime($hh, $mn, 0, $mm, $jj, $aa); $date = date( 'Ymd H:i:s', $ts ); $date_gmt = date( 'Ymd H:i:s', ( $ts + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) ) ); $modified = current_time( 'mysql'); $modified_gmt = current_time( 'mysql', true); global $wpdb; $data = array( 'post_date' => $date, 'post_date_gmt' => $date_gmt, 'post_modified' => $modified, 'post_modified_gmt' => $modified_gmt, ); $wpdb->update( $wpdb->posts, $data, array( 'ID' => $post['ID'] ), '%s', '%d' ); } 

Когда вложение сохраняется, дата публикации устанавливается так, как вы указываете в полях даты.

Однако вложения все видны независимо от даты, потому что WordPress не проверяет дату в запросах вложений. Давайте добавим к этому условию фильтр:

 add_filter( 'posts_where', 'not_future_attachment', 9999, 2 ); function not_future_attachment( $where, $query ) { if ( is_admin() ) return $where; if ( $query->get('post_type') === 'attachment' ) { global $wpdb; $where .= $wpdb->prepare( " AND ($wpdb->posts.post_date <= %s)", current_time( 'mysql') ); } return $where; } 

Теперь в WP_Query для галереи (или там, где вы хотите) обязательно используйте WP_Query настроить аргумент post type на 'attachment' .

В стандартном get_children [gallery] это не будет работать, потому что оно использует get_children где фильтры запросов подавляются, поэтому вам нужно создать собственный код или перезаписать по умолчанию.

Создайте полную галерею сразу, используйте для нее специальный обработчик коротких сообщений.

В вашем обработчике коротких сообщений просто пересчитайте вложения для календаря прихода или найдите мета-сообщение для вложения. Замените образ заполнителем или полностью спрячьте его, если его еще не видно.

Вложение открыто, момент загружается, потому что WordPress не участвует в прямом запросе файла.