Intereting Posts
Импорт 10-летней информации в базу данных WP Опубликовать страницы / сообщения в формате HTML? Как я могу скрывать продукты без категоризации из результатов поиска? Добавление настраиваемых массовых действий «Примечание: неопределенная переменная: содержимое» показывает Плюсы и минусы за высокое «время истечения» в wp-super-cache или w3-total-cache? Заказывать сообщения по (иерархическим обычаям) таксономии и терминам детей Интеграция PHP в Javascript для отображения маркеров карты с помощью API Google Удалить ссылку продукта на Woocommerce Cart Widget apply_filters ('the_content', $ content) альтернатива Редактируемая форма для страницы параметров плагина WordPress Как удалить дату, автора и комментарий с страницы результатов поиска Chameleon Поиск настраиваемого типа сообщений по метаданным 301 (статические страницы вместо последних сообщений) Запрос Woocommerce по ценовому диапазону и пользовательскому мета-ключу

Как отключить функцию редактирования сообщения после периода времени?

Как отключить параметр редактирования сообщения для публикации через один день после публикации?

Solutions Collecting From Web of "Как отключить функцию редактирования сообщения после периода времени?"

Ницца, @ Алекс. Вот упрощенная версия, которая не запрещает администраторам редактировать. Эта версия больше похожа на стиль WordPress, так как я взял ее из кода примера на странице Codex user_has_cap и изменил ее.

function restrict_editing_published_posts( $allcaps, $cap, $args ) { // Bail out if we're not asking to edit a post ... if( 'edit_post' != $args[0] // ... or user is admin || !empty( $allcaps['manage_options'] ) // ... or user already cannot edit the post || empty( $allcaps['edit_posts'] ) ) return $allcaps; $post = get_post( $args[2] ); // Bail out if the post isn't published: if( 'publish' != $post->post_status ) return $allcaps; // If post is older than a day ... if( strtotime( $post->post_date ) < strtotime( '-1 day' ) ) { // ... then disallow editing. $allcaps[$cap[0]] = false; } return $allcaps; } add_filter( 'user_has_cap', 'restrict_editing_published_posts', 10, 3 ); 

ОК! @Kieran и @Rarst, вот оно 🙂

 function stoppostedition_filter( $capauser, $capask, $param){ global $wpdb; $post = get_post( $param[2] ); if( $post->post_status == 'publish' ){ // Disable post edit only for authore role if( $capauser['author'] == 1 ){ if( ( $param[0] == "edit_post") || ( $param[0] == "delete_post" ) ) { // How much time have passed since post publication $post_time_unix = strtotime( str_replace('-', ':', $post->post_date ) ); $current_time_unix = time(); $diff = $current_time_unix - $post_time_unix; $hours_after_publication = floor( $diff / 60 / 60 ); // If 24 hours have passed since the publication than remove capability to edit and delete post if( $hours_after_publication >= 24 ){ foreach( (array) $capask as $capasuppr) { if ( array_key_exists($capasuppr, $capauser) ) { $capauser[$capasuppr] = 0; } } } } } } return $capauser; } add_filter('user_has_cap', 'stoppostedition_filter', 100, 3 );