👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →
Иногда при администрировании не достаточно двух статусов, и требуются дополнительные. Например, администратор может для разного рода ошибок и примечаний создать статусные сообщения, которые авторы увидят в административной части.
Чтобы добавить дополнительные статусные сообщения к постам, которые авторы, редакторы и администраторы будут видеть в административной части в разделе записей рядом с названием каждого поста, откройте файл functions.php, и вставьте в него примерно такой код:
add_filter( 'display_post_states','custom_post_state'); function custom_post_state( $states ) { global $post; $show_custom_state = get_post_meta( $post->ID, '_status' ); if ( $show_custom_state ) { $states[] = __( '<span class="custom_state '.strtolower($show_custom_state[0]).'">'.$show_custom_state[0].'</span>' ); } return $states; } add_action( 'post_submitbox_misc_actions', 'custom_status_metabox' ); function custom_status_metabox(){ global $post; $custom = get_post_custom($post->ID); $status = $custom["_status"][0]; $i = 0; /* ----------------------------------- */ /* Array of custom status messages */ /* ----------------------------------- */ $custom_status = array( 'Spelling', 'Review', 'Errors', 'Source', 'Rejected', 'Final', ); echo '<div class="misc-pub-section custom">'; echo '<label>Custom status: </label>'; echo 'Custom status'; echo '-----------------'; for($i=0;$i<count($custom_status);$i++){ if($status == $custom_status[$i]){ echo ''.$custom_status[$i].''; }else{ echo ''.$custom_status[$i].''; } } echo ''; echo '<br /></div>'; } add_action('save_post', 'save_status'); function save_status(){ global $post; if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){ return $post->ID; } update_post_meta($post->ID, "_status", $_POST["status"]); } add_action( 'admin_head', 'status_css' ); function status_css() { echo ' .default{font-weight:bold;} .custom{border-top:solid 1px #e5e5e5;} .custom_state{ font-size:9px; color:#666; background:#e5e5e5; padding:3px 6px 3px 6px; -moz-border-radius:3px; } /* ----------------------------------- */ /* вы можете изменить цвета выделения */ /* ----------------------------------- */ .spelling{background:#4BC8EB;color:#fff;} .review{background:#CB4BEB;color:#fff;} .errors{background:#FF0000;color:#fff;} .source{background:#D7E01F;color:#333;} .rejected{background:#000000;color:#fff;} .final{background:#DE9414;color:#333;} '; }
Дополнительные статусы позволят упростить работу с авторами, да и вам сразу будет понятно, какую работу нужно проделать в посте.
А как можно русифицировать эту функцию?
Т.е., чтобы вместо слов spelling, reviev, error выводились русские слова?
Т.е., понятно, что можно написать на их месте русские буквы, но при этом надо сохранить вывод css свойств. Если я напишу вместо слова rejected слово “удалить”, то у меня и css свойство будет “.удалить”, а не .rejected, а русские символы css не учитывает
Можно попробовать так – заменить перебор статусов на статусы с точным определением. Код, начиная с 31 cтрочки:
Здравствуйте! А возможно ли изменять данные статусы через frond end, т.е. сразу через сайт? Заранее спасибо за ответ!
Нет.