Создание своего сообщения о статусе записи в консоли 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);
    }
}
?>

Как изменить стандартный шрифт 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');
?>

Отображение миниатюры при редактировании записи и обзоре страницы в WordPress

15.12.2017 | Автор: Maxim Glovatsky

WordPress версии 2.9 представил возможность добавления миниатюры поста. Это круто, и чтобы отображать миниатюру поста также при редактировании поста и обзоре страницы, Вы можете вставить представленный код в файл functions.php темы.

<?php
if ( !function_exists('fb_AddThumbColumn') && function_exists('add_theme_support') ) {
// for post and page
add_theme_support('post-thumbnails', array( 'post', 'page' ) );
function fb_AddThumbColumn($cols) {
    $cols['thumbnail'] = __('Thumbnail');
    return $cols;
}
 
function fb_AddThumbValue($column_name, $post_id) {
    $width = (int) 35;
    $height = (int) 35;
    if ( 'thumbnail' == $column_name ) {
        // thumbnail of WP 2.9
        $thumbnail_id = get_post_meta( $post_id, '_thumbnail_id', true );
 
        // image from gallery
        $attachments = get_children( array('post_parent' => $post_id, 'post_type' => 'attachment', 'post_mime_type' => 'image') );
 
        if ($thumbnail_id)
            $thumb = wp_get_attachment_image( $thumbnail_id, array($width, $height), true );
        elseif ($attachments) {
            foreach ( $attachments as $attachment_id => $attachment ) {
            $thumb = wp_get_attachment_image( $attachment_id, array($width, $height), true );
        }
    }
    if ( isset($thumb) && $thumb ) { echo $thumb; }
    else { echo __('None'); }
    }
}
 
// for posts
add_filter( 'manage_posts_columns', 'fb_AddThumbColumn' );
add_action( 'manage_posts_custom_column', 'fb_AddThumbValue', 10, 2 );
 
// for pages
add_filter( 'manage_pages_columns', 'fb_AddThumbColumn' );
add_action( 'manage_pages_custom_column', 'fb_AddThumbValue', 10, 2 );
}
?>

Форматы записей — интересные вариации для темы WordPress

10.12.2017 | Автор: Maxim Glovatsky

Представленный ниже синтаксис дает некоторые из возможных форматов постов в WordPress. Которые затем могут быть выбраны и использованы прямо в статье. Всё что Вам нужно - это вставить код в файл functions.php Вашей темы.

<?php
add_theme_support( 'post-formats', array( 'aside', 'audio', 'image', 'video' ) );
?>

Включение редактора TinyMCE для правки анонса записи в WordPres

05.12.2017 | Автор: Maxim Glovatsky

Вставив этот фрагмент кода в файл functions.php Вашей темы WordPress, Вы активируете редактор TinyMC для поля ввода анонса записи.

function tinymce_excerpt_js(){ ?>
<script type="text/javascript">
    jQuery(document).ready( tinymce_excerpt );
    function tinymce_excerpt() {
    jQuery("#excerpt").addClass("mceEditor");
    tinyMCE.execCommand("mceAddControl", false, "excerpt");
    }
</script>
<?php }
add_action( 'admin_head-post.php', 'tinymce_excerpt_js');
add_action( 'admin_head-post-new.php', 'tinymce_excerpt_js');
 
function tinymce_css(){ ?>
<style type='text/css'>
    #postexcerpt .inside{margin:0;padding:0;background:#fff;}
    #postexcerpt .inside p{padding:0px 0px 5px 10px;}
    #postexcerpt #excerpteditorcontainer { border-style: solid; padding: 0; }
</style>
<?php }
add_action( 'admin_head-post.php', 'tinymce_css');
add_action( 'admin_head-post-new.php', 'tinymce_css');
?>