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

Запись старше чем…

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

Вставляем следующий код в functions.php:

1function is_old_post($days = 5) {
2    $days = (int) $days;
3    $offset = $days*60*60*24;
4    if ( get_post_time() < date('U') - $offset )
5         return true;
6    return false;
7 }

А этот код — в цикл (single.php например)

1if ( is_old_post(10) ) {
2  // делаем что-то, если запись старше определенного количества дней
3  } else {
4  // делаем что-то, если запись НЕ старше определенного количества дней
5}

Исключаем страницы из списка редактирования страниц в админке

Это очень полезный и в то же время маленький сниппет, который исключит страницы в зависимости от их ID из списка страниц в админке. Просто добавляем его в файл functions.php вашей текущей темы wordpress и указываем в массиве ID страниц, которые вы хотите скрыть. Учтите, что сниппет не запрещает редактирование записи, он только лишь скрывает ее из виду.

1add_action( 'pre_get_posts' ,'exclude_this_page' );
2function exclude_this_page( $query ) {
3        if( !is_admin() )
4                return $query;
5        global $pagenow;
6        if( 'edit.php' == $pagenow && ( get_query_var('post_type') && 'page' == get_query_var('post_type') ) )
7                $query->set( 'post__not_in', array(23,28,30) ); // page id
8        return $query;
9}

Отображаем вложенные миниатюры с метаданными изображений

Добавляем этот сниппет в цикл вашего шаблона index.php, и вы увидите список всех вложений к записи со следующими метаданными (Credit, Camera, Focal Length, Aperture, ISO, Shutter Speed, Time Stamp, Copyright).

1<?php
2if($images =& get_children( 'post_type=attachment' )){
3   foreach($images as $id => $attachment ){
4           echo '<div>';
5           echo wp_get_attachment_image( $id, 'thumb' )."<br />";
6           $meta = wp_get_attachment_metadata($id);
7           echo "Credit:  ".$meta[image_meta][credit]."<br /> ";
8           echo "Camera:  ".$meta[image_meta][camera]."<br />";
9           echo "Focal length:  ".$meta[image_meta][focal_length]."<br />";
10           echo "Aperture:  ".$meta[image_meta][aperture]."<br />";
11           echo "ISO:  ".$meta[image_meta][iso]."<br />";
12           echo "Shutter speed:  ".$meta[image_meta][shutter_speed]."<br />";
13           echo "Time Stamp:  ".$meta[image_meta][created_timestamp]."<br />";
14           echo "Copyright:  ".$meta[image_meta][copyright];
15           echo '</div>';
16   }
17}
18?>

Устанавливаем минимальную длину комментария в WordPress

Добавляем этот замечательный сниппет от Paul Underwood в файл functions.php вашей текущей темы и Вордпресс установит минимальную требуемую длину комментария. Количество символов в комментарии ниже установленного значения (в примере это 20) заставит ВП отобразить сообщение об ошибке «All comments must be at least 20 characters long.»

1add_filter( 'preprocess_comment', 'minimal_comment_length' );
2function minimal_comment_length( $commentdata ) {
3    $minimalCommentLength = 20;
4    if ( strlen( trim( $commentdata['comment_content'] ) ) < $minimalCommentLength ){
5    wp_die( 'All comments must be at least ' . $minimalCommentLength . ' characters long.' );
6    }
7    return $commentdata;
8}

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

Добавление этого сниппета в файл functions.php вашей текущей темы приведет к тому, что пользовательское поле будет автоматически добавляться сразу после публикации записи/страницы. Не забудьте указать свои значения для FIELD_NAME and the CUSTOM VALUE.

1add_action('publish_page', 'add_custom_field_automatically');
2add_action('publish_post'. 'add_custom_field_automatically');
3function add_custom_field_automatically($post_ID) {
4    global $wpdb;
5    if(!wp_is_post_revision($post_ID)) {
6        add_post_meta($post_ID, 'FIELD_NAME', 'CUSTOM VALUE', true);
7    }
8}

Заставляем определенные страницы принудительно работать через ssl, https

Очень просто заставить определенные страницы принудительно работать через ssl с помощью следующего сниппета. Просто добавляем код в файл functions.php вашей текущей темы и указываем желаемые ID записи/страницы.

1function wps_force_ssl( $force_ssl, $post_id = 0, $url = '' ) {
2    if ( $post_id == 25 ) {
3        return true
4    }
5    return $force_ssl;
6}
7add_filter('force_ssl' , 'wps_force_ssl', 10, 3);

Убираем/отключаем поле Сайт в форме комментариев

С помощью следующего сниппета можно убрать/отключить поле Сайт и вашей формы комментариев. Для этого просто добавить код в файл functions.php вашей текущей темы:

1add_filter('comment_form_default_fields', 'unset_url_field');
2function unset_url_field($fields){
3    if(isset($fields['url']))
4       unset($fields['url']);
5       return $fields;
6}
VN:F [1.9.22_1171]
Rating: 5.0/5 (2 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top