Определить Menu_Order При Создании Нового Пользовательского Сообщения?

  • Автор темы SergMarkov
  • Обновлено
  • 21, Oct 2024
  • #1

Я создал собственный тип сообщения под названием +1 and I'm using a plugin called menu_order (что меняет video field) to allow the user to use a drag and drop interface to order their videos in a playlist.

Однако при добавлении нового сообщения видео появляется вверху списка воспроизведения, поскольку для него задано значение по умолчанию. 0 value of menu_order .

При создании нового видео-сообщения я бы хотел, чтобы оно отображалось последним в списке воспроизведения, т. е. запрашивалось все. menu_order post types, find the largest Playlist_Order значение, а затем установите это video for the new post.

Как я могу это реализовать?

#custom-post-types

SergMarkov


Рег
19 Oct, 2008

Тем
64

Постов
194

Баллов
564
  • 25, Oct 2024
  • #2

Привет @fxfuture:

Я думаю, что вы ищете

 
 add_filter( 'wp_insert_post_data', 'mp_wp_insert_post_data', 999, 2);
function mp_wp_insert_post_data( $data, $postarr ) {

$post_type = 'page';

if( $data['post_type'] == 'page' && $data['menu_order'] == 0 ) {

global $wpdb;

$data['menu_order'] = $wpdb->get_var("SELECT MAX(menu_order)+5 AS menu_order FROM {$wpdb->posts} WHERE post_type='{$post_type}'");

}

return $data;
}
 
hook. You can add this code to the bottom of your theme's add_filter('wp_insert_post_data','my_wp_insert_post_data',10,2); function my_wp_insert_post_data($data, $postarr) { $post_type = 'video'; if ($data['post_type']==$post_type && get_post($postarr['ID'])->post_status=='draft') { global $wpdb; $data['menu_order'] = $wpdb->get_var("SELECT MAX(menu_order)+1 AS menu_order FROM {$wpdb->posts} WHERE post_type='{$post_type}'"); } return $data; } файл и/или вы можете добавить его в плагин:

functions.php ||answer||

аргументы 10 и 2 в конце метода add_filter:

приоритет выполнения (необязательно, по умолчанию = 10)

и количество аргументов, которые получает новая функция (необязательно, по умолчанию = 1) http://codex.wordpress.org/Function_Reference/add_filter

единственная причина, по которой он появляется в приведенном выше коде, — это изменение количества аргументов по умолчанию.

читайте больше здесь

wp_insert_post_data
 

EldettareBoto77


Рег
27 Jun, 2008

Тем
83

Постов
179

Баллов
624
Похожие темы Дата