Создание своего сообщения о статусе записи в консоли WordPress
17.07.2018 | Автор: Maxim GlovatskyИзначально это было написано разработчиком WordPress как способ для клиента отображать свои сообщения для каждого созданного автором поста. В данном случае у Вас могли бы быть сообщения по типу "Отклонен", "Ошибка", "Источник" и т.д. Вы можете менять сообщения сразу под комментарием "Array of custom status messages" в коде, также убедитесь, что Вы изменили названия классов, которые вы можете изменить после комментария "change color of messages below".
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
<?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><select name="status">'; echo '<option class="default">Custom status</option>'; echo '<option>-----------------</option>'; for ($i = 0; $i < count($custom_status); $i++) { if ($status == $custom_status[$i]) { echo '<option value="' . $custom_status[$i] . '" selected="true">' . $custom_status[$i] . '</option>'; } else { echo '<option value="' . $custom_status[$i] . '">' . $custom_status[$i] . '</option>'; } } echo '</select>'; 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 '<style type="text/css"> .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; } /* ----------------------------------- */ /* change color of messages below */ /* ----------------------------------- */ .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;} </style>'; } ?> |
Добавление своего поля при публикации записи/страницы в WordPress
15.07.2018 | Автор: Maxim GlovatskyС помощью этого кода мы можем автоматически добавить свои поля в запись или страницу WordPress при публикации. Просто добавляем этот код в файл functions.php, размещенный в папке нашей темы. при этом не забываем изменить название поля.
1 2 3 4 5 6 7 8 9 10 11 |
<?php add_action('publish_page', 'add_custom_field_automatically'); add_action('publish_post', 'add_custom_field_automatically'); function add_custom_field_automatically($post_ID) { global $wpdb; if(!wp_is_post_revision($post_ID)) { add_post_meta($post_ID, 'field-name', 'custom value', true); } } ?> |
Установка Composer на OpenServer
05.01.2018 | Автор: Maxim GlovatskyОбычно, при попытке установить Composer на Windows с установленным и запущенным OpenServer'ом возникает проблема: Composer не хочет устанавливаться по причине ошибки openssl, которая в Вашем проекте выключена. Конечно же, при открытии php.ini через openserver Вы обнаружите что соблюли все требования, однако Composer все равно будет ругаться.
Решить это можно довольно просто, всего в 3 шага:
Шаг 1 - устанавливаем нужные нам версию PHP и Apache в настройках openserver'а.
Помните! Версия должна быть не ниже PHP 5.3.2!
Шаг 2 - В OpenServer открываем: Дополнительно -> Конфигурация -> PHP .....
Проверяем наличие раскомментированного extension=php_openssl.dll.
Шаг 3 - Включаем Консоль OpenServer'a: Дополнительно -> Консоль.
Коммандами консоли windows переходим в папку используемого php. Я использую PHP-7.2-x64 и моя команда выглядит так:
1 |
cd modules/php/PHP-7.2-x64/ |
Затем выполняем комманду:
1 |
php -r "readfile('https://getcomposer.org/installer');" | php |
После чего, если все успешно, Вы увидите надпись:
1 2 3 4 5 |
All settings correct for using Composer Downloading... Composer succesfully installed to :<путь до вашей папки php>/Composer.phar User it: php composer.phar |
Готово! Composer установился и набрав комманду:
1 |
php composer.phar -V |
Вы должны увидеть запись подобного рода:
1 |
Composer version <версия> < дата обновления > |
Как изменить стандартный шрифт WordPress редактора
30.12.2017 | Автор: Maxim GlovatskyВам ужасно не нравится шрифт, который используется в редакторе WordPress? Его можно изменить на современный шрифт, например, Monaco или Consolas, просто вставьте код в файл functions.php Вашей темы WordPress.
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php function change_editor_font(){ echo "<style type='text/css'> #editorcontainer textarea#content { font-family: Monaco, Consolas, \"Andale Mono\", \"Dejavu Sans Mono\", monospace; font-size:14px; color:#333; } </style>"; } add_action("admin_print_styles", "change_editor_font"); ?> |
Установка максимальной длинны заголовка записи в WordPress
25.12.2017 | Автор: Maxim GlovatskyДобавление этого PHP кода в functions.php файл Вашей WordPress темы установит максимальное количество слов, которое может быть отображено в заголовке поста. Очень удобно!
1 2 3 4 5 6 7 8 9 |
<?php function maxTitle($title){ global $post; $title = $post->post_title; if (str_word_count($title) >= 10 ) //set this to the maximum number of words wp_die( __('Error: your post title is over the maximum word count.') ); } add_action('publish_post', 'maxTitle'); ?> |