Пачка полезных сниппетов для блога. Часть 35

Информируем пользователя об автоматическом закрытии статьи для комментирования

Для того, чтобы предотвратить спам старых статей ненужными комментариями вы можете указать WordPress, чтобы тот закрывал комментирование для статей после определенного количества дней:

close-comments[1]

Для некоторых пользователей может оказаться неожиданностью, если комментирование отключится автоматически, поэтому будет полезно проинформировать их об оставшемся для комментирования времени.

Для этого просто добавьте код в файл functions.php вашей темы или в плагин для сайта WordPress:

add_action( 'comment_form_top', 'topic_closes_in' );

function topic_closes_in() {
    global $post;
    if ($post->comment_status == 'open') {
        $close_comments_days_old = get_option( 'close_comments_days_old' );
        $expires = strtotime( "{$post->post_date_gmt} GMT" ) +  $close_comments_days_old * DAY_IN_SECONDS;
        printf( __( '(Комментирование этой статьи автоматически отключится через in %s. )', 'domain' ),  human_time_diff( $expires ));
    }
}

Код, в принципе, прост и понятен, однако присутствует функция, о которой не каждый разработчик WordPress может знать: human_time_diff(). Эта функция спрятана в файле …/wp-includes/formatting.php. Вообще она планировалась для использования в темах для получения более «человечной» даты/времени написания статьи. Но, виду того, что функции все равно, дата в прошлом или дата в будущем, мы можем использовать ее для своих задач.

close-comment-example[1]

Создаем страницы при активации темы

Если вы создаете новую темы для продажи или же для клиента, вам может понадобиться создание собственных страниц и записей при активации темы. Добавление этого сниппета в файл functions.php вашей темы решит вашу задачу.

if (isset($_GET['activated']) && is_admin()){
        $new_page_title = 'Здесь будет заголовок страницы';
        $new_page_content = 'Здесь будет содержимое страницы';
        $new_page_template = ''; //например. template-custom.php. Оставьте пустым, если не нужно использовать произвольный шаблон страницы.
        //не изменяйте код ниже, если вы не знаете, к чему это приведет
        $page_check = get_page_by_title($new_page_title);
        $new_page = array(
                'post_type' => 'page',
                'post_title' => $new_page_title,
                'post_content' => $new_page_content,
                'post_status' => 'publish',
                'post_author' => 1,
        );
        if(!isset($page_check->ID)){
                $new_page_id = wp_insert_post($new_page);
                if(!empty($new_page_template)){
                        update_post_meta($new_page_id, '_wp_page_template', $new_page_template);
                }
        }
}

Убираем атрибуты ширины и высоты для изображений в записях

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

add_filter( 'post_thumbnail_html', 'remove_wps_width_attribute', 10 );
add_filter( 'image_send_to_editor', 'remove_wps_width_attribute', 10 );
function remove_wps_width_attribute( $html ) {
    $html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html );
    return $html;
}

По всем вопросам и отзывам просьба писать в комментарии ниже.

Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.

VN:F [1.9.22_1171]
Rating: 5.0/5 (2 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
  • http://aimpartner.info/ Виталий Виталиев

    Очень полезный материал. спасибо.

Scroll To Top