За підтримки:
Все автоновости киева на автомобильном информационном портале, а также авто события, тюнинг, автобизнес.
Уявімо, що потрібно змінити дату певного допису у блозі на WordPress, поставивши сьогоднішнє число. Можливо тому, що запис став неймовірно актуальним, а можливо для того, щоб просто поставити конкретний допис знов першим на блозі. В принципі, мотивація може бути різною, а для нас головне дія :-)
У такому випадку треба зайти в адмінку, на сторінку редагування допису і справа у стрічці "Опубліковано" терпеливо вводити нову дату та час публікації. Потім клацнути кнопку "Оновити". Все вірно? Ну звичайно, ви вже й самі це все знаєте! :-) Не для того я пишу цей пост, щоб повторювати давно відомі речі. А, навпаки, щоб поділитись новим і цікавим. Наприклад, поділюсь кнопкою, що зробить всю вище описану довгу операцію прямо у фронт-енді на сторінці допису і всього в один клік!
Ось код, що додасть цю "чарівну" кнопку на сайт:
ID;
if (isset($_POST[$postid])){
$data = array (
'ID' => $postid,
'post_date' => $current,
);
wp_update_post($data);
echo '<span style="color: red;">Time updated!</span>';
}
?>
<form name="timeedit" method="post" enctype="multipart/form-data" action="">
<input name="<?php echo $postid ?>" class="button" id="send-<?php echo $postid ?>" value="Update Time" type="submit">
</form>
УВАГА! Цей код повинен бути у циклі (loop)! Його можна вставляти у шаблон одиночного поста або архіва постів. Найкраще, одразу після заголовка.
Фільтр користувачів, для яких буде доступна дана кнопка, відбувається по можливості (capability). Я обрав можливість користувача постити html теги чи навіть js-скрипти (мають Адмін і Редактор). Для гостей і користувачів з іншими правами жодної кнопки показано не буде.
Гаразд. А чи можливий подібний функціонал у адмінці на сторінці всіх постів? Звісно! Для цього у файл functions.php вашої теми слід додати наступний код:
ID;
if (isset($_POST[$postid])){
$data = array (
'ID' => $postid,
'post_date' => $current,
);
wp_update_post($data);
echo '<span style="color: red;">Time updated!</span>';
}
echo '<form name="timeedit" method="post" enctype="multipart/form-data" action="">';
echo '<input name="'.$postid.'" class="button" id="send-'.$postid.'" value="Update Time" type="submit">';
echo '</form>';
}
}
?>Тепер, на сторінці постів у адмінці для тих же користувачів (Адмін і Редактор) з'явиться нова колонка з кнопкою "Edit Time" навпроти кожного допису. Робить вона те ж саме - в один клік оновлює дату і час допису на поточні.