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

Используем wp_trim_words для обрезки текста в WordPress

В WordPress 3.3+ появилась встроенная функция под названием wp_trim_words(), которая обрезает текст на определенное вами количество слов и возвращает результат. Добавление этого сниппета в цикл записей позволит вам обрезать количество слов для вывод их в the_content, the_excerpt, the_title или в любом другом значении, которое вы передадите ей.

echo wp_trim_words( get_the_content(), 100 ); // контент записи
echo wp_trim_words( get_the_excerpt(), 100 ); // цитата записи
echo wp_trim_words( get_the_title(), 100 ); // заголовок записи


<strong>Пример</strong>

$trimmed = wp_trim_words( $text, $num_words = 55, $more = null );

Источник

Возможные параметры

$text
(string) (required) Текст для обрезки

По-умолчанию: None
$num_words
(integer) (optional) Количество слов

По-умолчанию: 55
$more
(string) (дополнительно) Что добавлять, если $text нужно обрезать.

По-умолчанию: ‘&hellip;

Добавляем файлы PDF к записям с помощью выбора файла в произвольных мета-полях

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

custom-metabox-listing-all-pdf-files-in-media-library-screenshot[1]

add_action("admin_init", "pdf_init");
add_action('save_post', 'save_pdf_link');
function pdf_init(){
        add_meta_box("my-pdf", "PDF Document", "pdf_link", "post", "normal", "low");
        }
function pdf_link(){
        global $post;
        $custom  = get_post_custom($post->ID);
        $link    = $custom["link"][0];
        $count   = 0;
        echo '<div class="link_header">';
        $query_pdf_args = array(
                'post_type' => 'attachment',
                'post_mime_type' =>'application/pdf',
                'post_status' => 'inherit',
                'posts_per_page' => -1,
                );
        $query_pdf = new WP_Query( $query_pdf_args );
        $pdf = array();
        echo '<select name="link">';
        echo '<option class="pdf_select">SELECT pdf FILE</option>';
        foreach ( $query_pdf->posts as $file) {
           if($link == $pdf[]= $file->guid){
              echo '<option value="'.$pdf[]= $file->guid.'" selected="true">'.$pdf[]= $file->guid.'</option>';
                 }else{
              echo '<option value="'.$pdf[]= $file->guid.'">'.$pdf[]= $file->guid.'</option>';
                 }
                $count++;
        }
        echo '</select><br /></div>';
        echo '<p>Selecting a pdf file from the above list to attach to this post.</p>';
        echo '<div class="pdf_count"><span>Files:</span> <b>'.$count.'</b></div>';
}
function save_pdf_link(){
        global $post;
        if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){ return $post->ID; }
        update_post_meta($post->ID, "link", $_POST["link"]);
}
add_action( 'admin_head', 'pdf_css' );
function pdf_css() {
        echo '<style type="text/css">
        .pdf_select{
                font-weight:bold;
                background:#e5e5e5;
                }
        .pdf_count{
                font-size:9px;
                color:#0066ff;
                text-transform:uppercase;
                background:#f3f3f3;
                border-top:solid 1px #e5e5e5;
                padding:6px 6px 6px 12px;
                margin:0px -6px -8px -6px;
                -moz-border-radius:0px 0px 6px 6px;
                -webkit-border-radius:0px 0px 6px 6px;
                border-radius:0px 0px 6px 6px;
                }
        .pdf_count span{color:#666;}
                </style>';
}
function pdf_file_url(){
        global $wp_query;
        $custom = get_post_custom($wp_query->post->ID);
        echo $custom['link'][0];
}

Сниппет:

<? pdf_file_url(); ?>


Пример использования:

<a href="<? pdf_file_url(); ?>">My PDF File</a>

Как вернуть одноколоночную консоль в WordPress 3.8

В WordPress 3.8 был представлен новый способ отображения консоли. Если он вам не нравится и вы хотите вернуть старую добрую одноколоночную консоль с виджетами, вот вам сниппет, новогодний.

Вернуть одноколоночную консоль с виджетами в WordPress 3.8 достаточно просто: необходимо добавить следующий код в файл functions.php вашей темы:

// Принудительно отображаем одноколоночную консоль с виджетами
function shapeSpace_screen_layout_columns($columns) {
	$columns['dashboard'] = 1;
	return $columns;
}
add_filter('screen_layout_columns', 'shapeSpace_screen_layout_columns');

function shapeSpace_screen_layout_dashboard() { return 1; }
add_filter('get_user_option_screen_layout_dashboard', 'shapeSpace_screen_layout_dashboard');

Подгружаем все записи за последнюю неделю в WordPress

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

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

$query_args = array(
	'w'    => date( 'W' ),
	'year' => date( 'Y' ),
);
$posts = get_posts( $query_args );

// Выводим посты как задумали
VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Об авторе ADv

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