Статьи

Использование условных тегов для наполнения вашего блога

Условные теги — это одна из многих замечательных структур, которые WordPress помогает нам легче разрабатывать для WordPress. В этой статье мы познакомимся с некоторыми из них и используем их в качестве примера функций, таких как удаление объектов со страниц ошибок или изменение значка страниц администратора.


В основном это вопросы типа «да-нет»: они возвращают только ИСТИНА или ЛОЖЬ, когда вы их используете. Мы используем их в операторах if — если оператор TRUE или FALSE, мы можем обработать наш код в соответствии с ответом .

Вы можете увидеть все условные теги в кодексе WordPress .

Теперь перейдем к самой интересной части! В этой статье есть десять замечательных функций, использующих условные теги.


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

Во-первых, вам нужно получить плагин Colorbox jQuery здесь . Загрузите файл colorbox.min.js из папки « colorbox / colorbox » и colorbox.css (и соответствующей папки « images ») в папку « colorbox » внутри папки темы.

Затем вам нужно создать файл colorbox.load.js для загрузки всплывающего окна. Поместите этот файл в папку « colorbox » тоже:

1
2
3
4
jQuery(document).ready(function($) {
    var $popup = $(«#mypopup»);
    $.colorbox({href:$popup});
});

После этого поместите всплывающий HTML-код (с mypopup « mypopup » для CSS) в файл index.php вашей темы и скройте его в файле style.css (с помощью « #mypopup {display:none;} »).

01
02
03
04
05
06
07
08
09
10
11
function front_popup() {
    if(is_front_page()) {
        // load colorbox.min.js
        wp_enqueue_script(‘colorbox-js’, get_template_directory_uri().’/colorbox/colorbox.min.js’,array(‘jquery’));
        // load colorbox.load.js
        wp_enqueue_script(‘colorbox-load-js’, get_template_directory_uri().’/colorbox/colorbox.load.js’,array(‘colorbox-js’));
        // load colorbox.css
        wp_enqueue_style(‘colorbox-css’, get_template_directory_uri().’/colorbox/colorbox.css’);
    }
}
add_action(‘wp_head’,’front_popup’);

Вставьте это в свой файл functions.php, и все готово!

Примечание. Чтобы всплывающее окно исчезло, необходимо добавить ссылку во всплывающее окно. Это будет хорошо

1
<a href=»javascript:$.colorbox.close();»>Close</a>

Вам может потребоваться загрузить некоторые внешние файлы JavaScript или CSS для конкретной страницы — например, страницу «О нас» или страницу загрузки для вашего продукта. Да, вы также можете включить их в свой контент, но это не очень хорошая практика. Вот хорошая практика:

1
2
3
4
5
6
7
function extra_assets() {
    if(is_page(123)) { // ‘123’ is the ID of the page we are checking for
        wp_enqueue_script(‘my-script’, get_template_directory_uri().’/some/path/in/your/theme/folder/script.js’);
        wp_enqueue_style(‘my-style’, get_template_directory_uri().’/some/path/in/your/theme/folder/style.css’);
    }
}
add_action(‘wp_head’,’extra_assets’);

Как и в первом примере, достаточно добавить это в ваш файл functions.php . (Не забудьте изменить номер « 123 » с идентификатором вашей страницы!)


Это не всегда необходимо, но вам может понадобиться раздел «Еще из этой категории» для категории (но не для других). Скажем, у вас есть категория «Новости», а другие категории не подходят для раздела, который мы собираемся создать. Условный тег in_category() поможет нам в этом:

01
02
03
04
05
06
07
08
09
10
11
12
13
function more_from_category($cat_ID) {
    if(in_category($cat_ID) {
        $posts = get_posts(‘numberposts=5&category=’.$cat_ID);
        $output = ‘<h3>More from this category</h3>’;
        $output.= ‘<ul>’;
        foreach($posts as $post) {
            $output.= ‘<li><a href=»‘.get_permalink().'»>’.get_the_title.'</a></li>’;
        }
        wp_reset_query();
        $output.= ‘</ul>’;
        echo $output;
    }
}

Создайте эту функцию, как вам нравится, и добавьте ее в свой файл functions.php . Затем перейдите в файл single.php и разместите код ( <?php more_from_category(123); ?> ) <?php more_from_category(123); ?> где вы хотите, чтобы раздел появился. Все, что вам нужно учесть, это поместить код в Цикл. Это все!


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

1
2
3
4
5
6
function preview_warning() {
    if(is_preview()) {
        echo ‘<div id=»preview-warning»>Remember, you\’re still on the Preview page!<div>’;
    }
}
add_action(‘the_content’,’preview_warning’);

Конечно, этого недостаточно — вам нужно отредактировать style.css, чтобы придать форму тексту предупреждения. Что-то вроде этого:

1
2
3
4
5
6
7
8
9
#preview-warning {
    background:#800;
    line-height:50px;
    font-size:30px;
    font-weight:bold;
    text-align:center;
    position:fixed;
    bottom:0;
}

Вот и вы!


Этот самый простой совет из всех. Я не думаю, что это даже нуждается в объяснении — просто оберните эти «определенные элементы» (вещи, которые вы не хотите показывать на страницах с ошибками, например, рекламу), с кодом ниже, и все готово!

1
2
3
if(!is_404()) {
    // Here comes the «certain elements».
}

Я просто ненавижу автоматически сгенерированные выдержки. Поэтому я удаляю их — с кодом, фактически предоставленным из Кодекса

1
2
3
4
5
6
7
function full_excerpt() {
    if (!has_excerpt()) {
        echo »;
    } else {
        echo get_the_excerpt();
    }
}

Добавьте это в файл functions.php, а затем все, что вам нужно сделать, это изменить экземпляры the_excerpt() с помощью full_excerpt() .


Иногда перечисление только названий более чем достаточно на определенных страницах архива — например, в архивах на основе дат. Так, например, is_date() тег is_date() , мы избавимся от всего, что есть в цикле, кроме заголовка.

Это довольно сложно, поскольку файлы archive.php различаются в каждой теме. (И если в вашей теме есть файл date.php , вы должны отредактировать его.) Найдите в коде Loop и измените код внутри Loop следующим образом:

1
2
3
4
5
6
7
8
if(is_date()) {
    // If your theme uses h2 headings for post titles, use h2.
    echo ‘<h2>’.the_title().'</h2>’;
} else {
    // …
    // The original code inside The Loop
    // …
}

Этот совет может быть очень полезен, если вы хотите работать с 20 открытыми вкладками, все для вашего блога. Просто немного отредактируйте ваш favicon и сохраните его как adminfav.ico — например, моя иконка админ-панели — это просто красная версия моего оригинального favicon.

В любом случае, вот как вы это делаете:

1
2
3
4
5
6
function admin_favicon() {
    if(is_admin()) {
        echo ‘<link rel=»shortcut icon» href=»‘.get_bloginfo(‘url’).’/adminfav.ico» />’;
    }
}
add_action(‘admin_head’,’admin_favicon’);

Это просто необходимо для хорошей темы. Если у вас есть какая-либо часть в вашей теме, где отображаются миниатюры избранных изображений, вы должны заменить функции the_post_thumbnail() кодом:

1
2
3
4
5
6
if(has_post_thumbnail()) {
    the_post_thumbnail();
}
else {
    echo ‘<img src=»‘.get_template_directory_uri().’/images/default-thumb.jpg» alt=»‘.get_the_title().'» class=»default-thumb» />’;
}

Таким образом, вы можете сохранить последовательность внешности вашей темы.


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

1
2
3
4
5
function member_menu() {
    if(is_user_logged_in()) {
        echo ‘<div class=»member-menu»><h2>Member Menu</h2><ul><li><a href=»#»>First Menu Item</a></li><li><a href=»#»>Second Menu Item</a></li><li><a href=»#»>Third Menu Item</a></li></ul></div>’;
    }
}

Это стандартный код «title & list», вы должны поиграть с кодом, чтобы он был похож на вашу боковую панель div s, а затем поместить код <?php member_menu(); ?> <?php member_menu(); ?> в файле sidebar.php вашей темы.

Кроме того, это всего лишь пример, но в идеале вы должны использовать настраиваемые меню WordPress с wp_nav_menu() здесь. Один стандарт и один для участников, затем вы можете продолжать управлять ими из панели администратора WordPress. Вы можете прочитать больше о функции wp_nav_menu() здесь .


Это были мои любимые 10 идей использовать условные теги. Что насчет твоего? Если у вас есть что поделиться, пожалуйста, прокомментируйте ниже, чтобы мы могли расширить этот пост с большим количеством идей!