Петербургское Садовое Кольцо

27.12.2018 | Автор: Maxim Glovatsky

Петербургское Садовое Кольцо

Yoga Family

20.07.2018 | Автор: Maxim Glovatsky

Создание своего сообщения о статусе записи в консоли WordPress

17.07.2018 | Автор: Maxim Glovatsky

Изначально это было написано разработчиком WordPress как способ для клиента отображать свои сообщения для каждого созданного автором поста. В данном случае у Вас могли бы быть сообщения по типу "Отклонен", "Ошибка", "Источник" и т.д. Вы можете менять сообщения сразу под комментарием "Array of custom status messages" в коде, также убедитесь, что Вы изменили названия классов, которые вы можете изменить после комментария "change color of messages below".

< ?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] . '';
        } 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, размещенный в папке нашей темы. при этом не забываем изменить название поля.

<?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 и моя команда выглядит так:

cd modules/php/PHP-7.2-x64/

Затем выполняем комманду:

php -r "readfile('https://getcomposer.org/installer');" | php

После чего, если все успешно, Вы увидите надпись:

All settings correct for using Composer
Downloading...
 
Composer succesfully installed to :<путь до вашей папки php>/Composer.phar
User it: php composer.phar

Готово! Composer установился и набрав комманду:

php composer.phar -V

Вы должны увидеть запись подобного рода:

Composer version <версия> < дата обновления >

Как изменить стандартный шрифт WordPress редактора

30.12.2017 | Автор: Maxim Glovatsky

Вам ужасно не нравится шрифт, который используется в редакторе WordPress? Его можно изменить на современный шрифт, например, Monaco или Consolas, просто вставьте код в файл functions.php Вашей темы WordPress.

<?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 темы установит максимальное количество слов, которое может быть отображено в заголовке поста. Очень удобно!

<?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');
?>