WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru WPmentor - Ищем топовых специалистов по WordPress, чтобы помочь вам заработать

[РЕШЕНО 100%] Поправить пост без изменения даты последнего обновления (Last edited)

на сайте 2 сортировки, по дате публикации и по обновлениям постов.
Иногда нужно поравить косяки и орфографию в постах, из-за этого пост попадает в список обновлений.
Подскажите: хочу добавить произвольное поле с галочкой , без сохранения данных из этого поля ( инструкция у КАМА есть, просто добавлю новый параметр чтоб код его не захватывал),

  • какой код добавить чтоб он сообщал посту, что дату редактирования не нужно обновлять ??
  • как выставить очередность и срабатывание фильтра при чекбоксе??
    Сохранять чек бокс не нужно, так как действие на один раз.

// добавляем меню в BOX 
add_action( 'post_submitbox_misc_actions', 'not_update_data_mod' );
function not_update_data_mod($post)
{
	// $value = get_post_meta($post->ID, '_publish_in_frontpage', true);
	echo '<div class="misc-pub-section misc-pub-section-last"><style></style>
		 <span id="timestamp">'        
		  . '<label style="display: none;" ><input type="hidden"  ' . 'value=""  name="extra_1000[my_checkbox]" />Force update data</label>'
		  . '<label                         ><input type="checkbox"' . 'value="1" name="extra_1000[my_checkbox]" />Force update data</label>'
	.'</span></div>';
}

// добавляем проверку чекбокса 
 add_filter('wp_insert_post_data','reset_post_date_wpse_121565',99,2);
function reset_post_date_wpse_121565($data,$postarr) {
	if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE  ) return $data; // пропустим если это автосохранение
	if ( ! current_user_can('edit_post', $postarr['ID'] ) ) return $data; // убедимся что пользователь может редактировать запись

	$_POST['extra_1000'] = array_map( 'sanitize_text_field', $_POST['extra_1000'] ); // чистим все данные от пробелов по краям
	foreach( $_POST['extra_1000'] as $key => $value ){
		if( $value == 1 ){
			$data['post_modified'] = $data['post_date'];
			$data['post_modified_gmt'] = $data['post_date_gmt'];            
		}
	}           
	return $data;
}
// ОРИГИНАЛЫ КОДОВ - их добавлять не нужно , они для заметки  
// дата модификации равна дате публикации 
function reset_post_date_wpse_121565($data,$postarr) {
  // var_dump($data,$postarr); die; // debug
  $data['post_modified'] = $data['post_date'];
  $data['post_modified_gmt'] = $data['post_date_gmt'];
  return $data;
}
add_filter('wp_insert_post_data','reset_post_date_wpse_121565',99,2);

// оригинал кода // дата публикации равна дате модификации 
function reset_post_date_wpse_121565($data,$postarr) {
  // var_dump($data,$postarr); die; // debug
  $data['post_date'] = $data['post_modified'];
  $data['post_date_gmt'] = $data['post_modified_gmt'];
  return $data;
}
add_filter('wp_insert_post_data','reset_post_date_wpse_121565',99,2);
Заметки к вопросу:
kolshix 29 Фев. 2020

осталось дело за малым, добавить менюшку по типу как у КАМА или как на скрине. Как на скрине ещё не знаю как сделать, буду искать

campusboy 1 Мар. 2020

Насчёт чекбокса в метабоксе можно подглядеть тут https://wp-kama.ru/question/plagin-dlya-isklyucheniya-posta-iz-vyvoda-na-glavnoj-stranitsy

kolshix 1 Мар. 2020

Я уже нашел код и сделал в описании. Только что проверил тот что по ссылке: они оба крепятся к post_submitbox_misc_actions.

0
kolshix
29 февраля 2020 598

Нет ответов на этот вопрос.

    На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация