четвъртък, август 11

Как да добавяте лепкави публикации в персонализирани архиви на тип публикации на WordPress

0
36
How to Add Sticky Posts in WordPress Custom Post Type Archives


Искате ли да добавите лепкави публикации към персонализирани архивни страници?

Поставянето на най-важните ви персонализирани публикации в горната част на страницата ще помогне на посетителите ви да ги намерят по-лесно. Но по подразбиране WordPress прави лепкавата функционалност достъпна за публикации, но не и за други типове публикации.

В тази статия ще разгледаме как да добавяме лепкави публикации в архивите на персонализирани публикации на WordPress.

Защо да правим WordPress персонализирани публикации лепкави?

Ако създавате съдържание за вашия уебсайт на WordPress с различен формат от стандартната публикация или страница, тогава вероятно вече използвате персонализиран тип публикация. Например, ако управлявате уебсайт за рецензии на книги, тогава може да сте създали тип публикация за рецензии на книги.

Може да пожелаете да поставите най-важното си съдържание в горната част на архива с персонализиран тип публикация. Това е един от най-добрите начини за представяне на задълбочено и чувствително във времето съдържание, както и най-популярните ви персонализирани публикации.

Но докато WordPress предлага функция за лепкави публикации, това не е налично за персонализирани типове публикации.

Нека да разгледаме как да добавите лепкава функция към вашите архивни страници с персонализиран тип публикации.

Добавяне на лепкави публикации в персонализирани типове публикации

Първо ще трябва да инсталирате и активирате приставката Sticky Posts – Switch. За повече подробности вижте нашето ръководство стъпка по стъпка как да инсталирате плъгин за WordPress.

При активиране трябва да посетите Настройки » Залепващи публикации – Превключване страница, за да конфигурирате приставката. Просто поставете отметка в квадратчето до персонализираните типове публикации, които искате да можете да направите лепкави. За този урок ще проверим типа публикация „Рецензии на книги“.

Посетете Настройки » Залепващи публикации - Превключете страницата, за да конфигурирате приставката

След това трябва да кликнете върху бутона „Запазване на промените“ в долната част на екрана.

Сега, когато посетите страницата на администратора за този персонализиран тип публикация, ще забележите нова колона, където можете да направите публикациите лепкави. Всичко, което трябва да направите, е да щракнете върху звездата до публикациите, които искате да представите.

Щракнете върху звездата до публикациите, които искате да направите лепкави

Вече направихте публикацията лепкава. Проблемът е, че WordPress показва само лепкави публикации на началната страница. След това ще разгледаме как да показваме лепкави публикации на архивни страници.

Показване на лепкави публикации в персонализирани архиви от тип публикации

За да покажете вашите лепкави публикации в горната част на страницата с архив на персонализирани публикации, трябва да създадете нов шаблон.

За да направите това, ще трябва да използвате FTP клиент или опцията за файлов мениджър в контролния панел за хостинг на WordPress. Ако не сте използвали FTP преди, тогава може да искате да видите нашето ръководство за това как да използвате FTP за качване на файлове в WordPress.

Трябва да получите достъп до вашия сайт чрез вашия FTP клиент или файлов мениджър и след това да отидете на /wp-content/themes/YOURTHEME/ папка. Например, ако използвате темата Twenty Twenty-One, тогава трябва да отидете до /wp-content/themes/twentytwentyone/.

След това трябва да създадете нов файл в тази папка с име като archive-POSTTYPE.php. Например, ако вашият персонализиран тип публикация е ‘bookreviews’, трябва да създадете нов файл, наречен archive-bookreviews.php.

Посетете папката си с тема с помощта на FTP клиент

След това трябва да намерите файла archive.php в същата папка. Просто копирайте съдържанието на archive.php и го поставете в новия файл, който сте създали.

Следващата стъпка изисква да добавите код към вашите файлове с теми. Ако имате нужда от помощ за добавяне на код към вашия сайт, вижте нашето ръководство за това как да добавите персонализиран код в WordPress.

Когато сте готови, трябва да добавите следния код във файла functions.php на вашата тема или плъгин, специфичен за сайта.

function wpb_cpt_sticky_at_top( $posts ) {
  
    // apply it on the archives only
    if ( is_main_query() && is_post_type_archive() ) {
        global $wp_query;
  
        $sticky_posts = get_option( 'sticky_posts' );
        $num_posts = count( $posts );
        $sticky_offset = 0;
  
        // Find the sticky posts
        for ($i = 0; $i < $num_posts; $i++) {
  
            // Put sticky posts at the top of the posts array
            if ( in_array( $posts[$i]->ID, $sticky_posts ) ) {
                $sticky_post = $posts[$i];
  
                // Remove sticky from current position
                array_splice( $posts, $i, 1 );
  
                // Move to front, after other stickies
                array_splice( $posts, $sticky_offset, 0, array($sticky_post) );
                $sticky_offset++;
  
                // Remove post from sticky posts array
                $offset = array_search($sticky_post->ID, $sticky_posts);
                unset( $sticky_posts[$offset] );
            }
        }
  
        // Look for more sticky posts if needed
        if ( !empty( $sticky_posts) ) {
  
            $stickies = get_posts( array(
                'post__in' => $sticky_posts,
                'post_type' => $wp_query->query_vars['post_type'],
                'post_status' => 'publish',
                'nopaging' => true
            ) );
  
            foreach ( $stickies as $sticky_post ) {
                array_splice( $posts, $sticky_offset, 0, array( $sticky_post ) );
                $sticky_offset++;
            }
        }
  
    }
  
    return $posts;
}
  
add_filter( 'the_posts', 'wpb_cpt_sticky_at_top' );
 
// Add sticky class in article title to style sticky posts differently
 
function cpt_sticky_class($classes) {
            if ( is_sticky() ) : 
            $classes[] = 'sticky';
            return $classes;
        endif; 
        return $classes;
                }
    add_filter('post_class', 'cpt_sticky_class');

Източник: Тарек Хасан

Този код премества вашите лепкави публикации в горната част. Ако вашата тема използва post_class() функция, след това добавя и ‘sticky’ клас, за да можете да стилизирате своите лепкави публикации с помощта на CSS.

Ето как изглежда архивът с персонализиран тип публикации за рецензии на книги на нашия демонстрационен сайт. Преди да добавите кода, лепкавата публикация беше втора в списъка.

Визуализация на Sticky Post в архив на персонализиран тип публикация

Вече можете да стилизирате своите лепкави публикации с помощта на .sticky клас във вашата тема style.css стилова таблица. Ето един пример.

.sticky { 
background-color:#ededed;
background-image:url('http://example.com/wp-content/uploads/featured.png');
background-repeat:no-repeat;
background-position:right top;
}

Ето актуализирана екранна снимка от нашия демонстрационен уебсайт.

Визуализация на CSS стил на Sticky Post

Надяваме се, че този урок ви е помогнал да научите как да добавяте лепкави публикации в архивите на персонализиран тип публикации на WordPress. Може също да искате да научите как да ускорите своя уебсайт на WordPress или да разгледате списък с 27 съвета за увеличаване на трафика на вашия блог.

Ако ви е харесала тази статия, моля, абонирайте се за нашия YouTube канал за видео уроци за WordPress. Можете също да ни намерите на Twitter и Facebook.



Comments are closed.