Как предотвратить публикацию публикаций слишком близко друг к другу?

Я управляю блогом, состоящим из 25 авторов. Иногда некоторые из них находятся в процессе написания нового сообщения сразу, и они заканчивают публикацию их слишком близко друг к другу.

Есть ли способ предотвратить это? Что-то сказать: «Еще один пост просто заработал в течение последних 5 минут. Вам нужно подождать 55 минут, чтобы опубликовать ваши».

7 голосов | спросил Tam N. 29 J0000006Europe/Moscow 2013, 06:30:20

2 ответа


6

Вот очень грубый блок кода, который должен вас запустить. То, что он делает, - это поиск последней «будущей» или «опубликованной» публикации, и если это значение меньше 1 часа, отличное от последнего запланированного сообщения, оно назначает текущую должность на один час плюс найденное «самое последнее» время.

function force_time_between_posts_wpse_104677($data, $postarr) {
  global $wpdb;
  if (empty($postarr['ID'])) return $data;

  $latest = $wpdb->get_var("
    SELECT post_date
    FROM {$wpdb->posts} 
    WHERE post_status IN('future','publish') 
    AND post_type = 'post' 
    AND ID != {$postarr['ID']}
    ORDER BY post_date DESC
    LIMIT 1");
  $distance = 60; // post publication spacing in minutes
  $latest = strtotime($latest);
  $current = strtotime($data['post_date']);

  if ($latest < $current) {
    $diff = $current - $latest;
  } else { 
    $diff = 0;
  }

  if ($diff >= 0 && $diff < ($distance * 60)) {
    $new_date = $latest + ($distance * 60);
    $date = date('Y-m-d H:i:s',$new_date);
    $date_gmt = get_gmt_from_date($date);
    $data['post_date'] = $date;
    $data['post_date_gmt'] = $date_gmt;
    $data['post_status'] = 'future';
  }
  return $data;
}
add_action('wp_insert_post_data','force_time_between_posts_wpse_104677',1,2);

В действительности это force пост-планирование, и если уже есть будущий пост, следующий будет запланирован после этого запланированного сообщения. Это означает, что он может потенциально планировать должности в будущем.

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

ответил s_ha_dum 30 J0000006Europe/Moscow 2013, 01:03:41
0

В репозитории есть плагин с именем Auto Future Date , который делает что-то вроде это. Он не обновлялся довольно долго, но большая часть кода кажется очень полезной.

Я не тестировал его, но скриншоты делают его похожим на то, что вы все равно можете публиковать публикацию и не придерживаться save_post крючок автоматически. Создание этого кода с помощью правильных крючков должно сделать трюк.

ответил Coen Jacobs 30 J0000006Europe/Moscow 2013, 00:55:26

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132