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

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

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

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

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

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

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

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

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

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

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

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

<?php
if($images =& get_children( 'post_type=attachment' )){
   foreach($images as $id => $attachment ){
           echo '<div>';
           echo wp_get_attachment_image( $id, 'thumb' )."<br />";
           $meta = wp_get_attachment_metadata($id);
           echo "Credit:  ".$meta[image_meta][credit]."<br /> ";
           echo "Camera:  ".$meta[image_meta][camera]."<br />";
           echo "Focal length:  ".$meta[image_meta][focal_length]."<br />";
           echo "Aperture:  ".$meta[image_meta][aperture]."<br />";
           echo "ISO:  ".$meta[image_meta][iso]."<br />";
           echo "Shutter speed:  ".$meta[image_meta][shutter_speed]."<br />";
           echo "Time Stamp:  ".$meta[image_meta][created_timestamp]."<br />";
           echo "Copyright:  ".$meta[image_meta][copyright];
           echo '</div>';
   }
}
?>

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

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

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

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

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

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);
    }
}

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

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

function wps_force_ssl( $force_ssl, $post_id = 0, $url = '' ) {
    if ( $post_id == 25 ) {
        return true
    }
    return $force_ssl;
}
add_filter('force_ssl' , 'wps_force_ssl', 10, 3);

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

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

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

Об авторе ADv

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