Функции в темах WordPress

Интересный материал, который будет хорошим дополнением к теме о создании темы для WordPress. Список всех функций в темах WopdPress с описанием каждой.

<HEAD>
Функция для вывода заголовка блога (простой вариант)

<title><?php bloginfo('name'); ?><?php wp_title(); ?></title>

Функция для вывода заголовка блога (усложненный вариант)

<title><?php wp_title(”); if (function_exists(‘is_tag’) and is_tag()) { ?>Tag Archive for <?php echo $tag; } if (is_archive()) { ?> archive<?php } elseif (is_search()) { ?> Search for <?php echo $s; } if ( !(is_404()) and (is_search()) or (is_single()) or (is_page()) or (function_exists(‘is_tag’) and is_tag()) or (is_archive()) ) { ?> at <?php } ?> <?php bloginfo(‘name’); ?> - <?php bloginfo(‘description’); ?></title>

Функция для указания кодировки блога (простой вариант)

<meta http-equiv=Content-Type content=text/html; charset=utf-8>

Функция для указания кодировки блога (усложненный вариант)

<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />

Функция для импорта таблицы стилей style.css

<style type=text/css media=screen>
@import url( <?php bloginfo('stylesheet_url'); ?> );
</style>

Функция для вывода версии блога

<meta name="generator" content="WordPress <?php bloginfo('version'); ?>" />

Функция для информации RSS, RSS2 url, пингбэк url, atom urlблога

<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="<?php bloginfo('rss2_url'); ?>" />
<link rel="alternate" type="text/xml" title="RSS .92" href="<?php bloginfo('rss_url'); ?>" />
<link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="<?php bloginfo('atom_url'); ?>" />

Функция для вывода прочей служебной информации и ключевых слов блога

<?php wp_head(); ?>

Функция для вывода фавикона из папки темы

<link href="<?php bloginfo('url'); ?>/wp-content/themes/название_темы/favicon.ico" rel="shortcut icon">

FUNCTIONS.PHP
Функция для виджетсовместимого сайдбара (см. sidebar.php)

<?php
if ( function_exists('register_sidebar') )
register_sidebars(2);(array(
'before_widget' => '',
'after_widget' => '',
'before_title' => '<h4>',
'after_title' => '</h4>',
));
?>

STYLE.CSS
Указание кодировки для таблицы стилей

@charset "utf-8";

Название темы (указывается между /* Функция */ )

Theme Name: wp-info.ru

Гиперссылка темы (указывается между /* Функция */ )

Theme URL: http://www.wp-info.ru

Описание темы (указывается между /* Функция */ )

Description: Russian subject for site www.wp-info.ru

Автор темы (указывается между /* Функция */ )

Author: wp-info.ru

Ссылка на сайт автора темы (указывается между /* Функция */ )

Author URL: http://wp-info.ru

Прикрепление к файлу style.php еще одного файла таблицы стилей categories.css

@import 'categories.css';

Пояснения в таблице стилей

/* Начало HEADER */

INDEX.PHP
Функция для вывода файла header.php

<?php get_header(); ?>

Функция для вывода файла sidebar.php

<?php get_sidebar(); ?>

Функция для вывода файла sidebar_2.php

<?php include(TEMPLATEPATH . '/sidebar_2.php'); ?>

Функция для вывода файла footer.php

<?php get_footer(); ?>

Функция для цикла вывода постов

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
тут функции для вывода постов
<?php endwhile; else: ?>
тут функция для вывода сообщения об ошибке
<?php endif; ?>

Функция для вывода сообщения об ошибке
<?php _e('Sorry, no posts matched your criteria.'); ?>

Функция для вывода заголовка поста (со ссылкой)

<a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a>

Функция для вывода ID записи (поста)

<?php the_ID(); ?>

Функция для вывода имени автора записи (поста)

<?php the_author() ?>

Функция для вывода времени опубликования поста

<?php the_time() ?>

Функция для вывода даты в формате "месяц-день-год"

<?php the_time('m-d-y') ?>

Функция для вывода содержания поста

<?php the_content(__('(more...)')); ?>

Функция для вывода названий категорий в которых опубликован пост

<?php _e("Написано в рубрике:"); ?> <?php the_category(',') ?>

Функция для вывода тегов с которыми опубликован пост

<?php the_tags('Метки: '); ?>

Функция для вывода ссылки "Редактировать" (редактирование поста)

<?php edit_post_link('Редактировать'); ?>

Функция для вывода ссылки "Предыдущая запись"

<?php previous_posts_link(__(' Следующая запись')) ?>
или так:
<?php previous_post_link('%link') ?>

Функция для вывода ссылки "Следующая запись"

<?php next_posts_link(__('Предыдущая запись ')) ?>
или так:
<?php next_post_link(' %link ') ?>

Функция для вывода ссылки "Следующая запись" и "Предыдущая запись"

<?php posts_nav_link(); ?>
или так:
<?php posts_nav_link(' &#8212; ', __('&laquo; Previous Page'), __('Next Page &raquo;')); ?>

Функция для вывода ссылки на комментарии текущей статьи

<?php comments_popup_link(); ?>

Функция для вывода сообщения о количестве комментариев и вывода comments.php

<?php comments_popup_link('Нет комментариев', '1 Комментарий', '% Комментариев'); ?>
<?php comments_template(); ?>

HEADER.PHP
Функция для вывода URL-адреса сайта блога

<?php bloginfo('url'); ?>

Функция для вывода названия блога

<?php bloginfo('name'); ?>

Функция для вывода краткого описания блога

<?php bloginfo('description'); ?>

Функция для вывода краткого названия блога со ссылкой

<a href="/"><?php bloginfo('name'); ?></a>

Функция для вывода краткого описания блога со ссылкой

<a href="/"><?php bloginfo('description'); ?></a>

Функция для вывода изображения из папки темы

<img src="<?php bloginfo('stylesheet_directory'); ?>/images/logo.jpg" border="0">

Функция для вывода изображения из папки темы с заголовком блога

<img src="<?php bloginfo('stylesheet_directory'); ?>/images/logo.jpg" alt="<?php bloginfo('name'); ?>" border="0">

Функция для вывода изображения из папки темы с заголовком блога и ссылкой на главную страницу блога

<a href="/"><img src="<?php bloginfo('stylesheet_directory'); ?>/images/logo.jpg" alt="<?php bloginfo('name'); ?>" border="0"></a>

FOOTER.PHP
Функция для вывода ссылок "Записи (RSS)" и "Комментарии (RSS)"

<?php printf(__('%1$s and %2$s.', 'kubrick'), '<a href="' . get_bloginfo('rss2_url') . '">' . __('Entries (RSS)') . '</a>', '<a href="' . get_bloginfo('comments_rss2_url') . '">' . __('Comments (RSS)') . '</a>'); ?>

SIDEBAR.PHP
Функция для вывода списка страниц

<?php wp_list_pages('depth=1&title_li='); ?>

Функция для вывода категорий (рубрик)

<?php _e('Categories:'); ?>
<?php wp_list_cats('sort_column=name&optioncount=1&hierarchical=0'); ?>

Функция для вывода архивов

<?php _e('Archives:'); ?>
<?php wp_get_archives('type=monthly'); ?>

Функция для вывода облака тегов

<?php wp_tag_cloud(); ?>

Функция для вывода списка ссылок (блогролл)

<?php get_links_list();?>

Функция для вывода формы поиска по блогу

<form id="searchform" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Искать на сайте:
<input type="text" name="s" id="s" />
<input type="image" src="<?php bloginfo('stylesheet_directory'); ?>/images/search.gif" />
</form>

Функция для вывода ссылок для администрирования блогом

<?php _e('Meta:'); ?>
<?php wp_register(); ?>
<?php wp_loginout(); ?>
<?php wp_meta(); ?>

Функция для вывода календаря

<?php get_calendar(); ?>

Функция для виджетсовместимого сайдбара (см. functions.php)

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
тут могут быть функции для вывода блоков по-умолчанию
<?php endif; ?>

COMMENTS.PHP
Функция для распознавания комментатора и начало цикла

<?php if ( !empty($post->post_password) && $_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) : ?>
<?php _e('Enter your password to view comments.'); ?>
<?php return; endif; ?>

Функция для вывода количества комментариев

<?php comments_number(__('No Comments'), __('1 Comment'), __('% Comments')); ?>
<?php if ( comments_open() ) : ?>
<?php endif; ?>
<?php if ( $comments ) : ?>
<?php foreach ($comments as $comment) : ?>

Функция для вывода информации о комментаторе

<?php comment_type(__('Comment'), __('Trackback'), __('Pingback')); ?>
<?php _e('by'); ?> <?php comment_author_link() ?>

Функция для вывода ссылки для редактирования комментария

<?php edit_comment_link(__("Edit This"), ' |'); ?>

Функция для вывода текста комментария

<?php comment_text() ?>

Функция для вывода аватара (граватара) 80х80 пикселей

<?php echo get_avatar( $comment, 80 ); ?>

Список опубликованных комментариев

<?php wp_list_comments();?>

Навигация по страницам комментариев

<?php previous_comments_link() ?><?php next_comments_link() ?>

Функция для закрытия цикла комментариев

<?php endforeach; ?>
<?php else : ?>
<?php endif; ?>

Функция для вывода строчки "Оставить комментарий" и начало цикла

<?php if ( comments_open() ) : ?>
<?php _e('Leave a comment'); ?>

Функция для распознавания комментатора и вывод соответствующих ссылок для регистрации или входа в аккаунт

<?php if ( get_option('comment_registration') && !$user_ID ) : ?>
You must be <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php the_permalink(); ?>">logged in</a> to post a comment.
<?php else : ?>

Функция для вывода формы отправки комментариев и ссылки для регистрации или входа в аккаунт

<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
<?php if ( $user_ID ) : ?>
Вы вошли как <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="<?php _e('Log out of this account') ?>">Выйти &raquo;</a>
<?php else : ?>
<p><input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1" />
<label for="author"><small>Имя <?php if ($req) _e('(required)'); ?></small></label></p>
<p><input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" />
<label for="email"><small>E-mail <?php if ($req) _e('(required)'); ?></small></label></p>
<p><input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="22" tabindex="3" />
<label for="url"><small>Сайт ( &lt;noindex&gt; )</small></label>
</p>
<?php endif; ?>
<p><small><strong>XHTML:</strong> Вы можете использовать теги в комментариях:<br> <?php echo allowed_tags(); ?></small></p>
<p><textarea name="comment" id="comment" tabindex="4"></textarea></p>
<p><input name="submit" type="image" id="submit" tabindex="5" src="<?php bloginfo('stylesheet_directory'); ?>/images/comment.jpg" />
<input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" /></p>
<?php do_action('comment_form', $post->ID); ?>
</form>

Функция для вывода списка тегов которые может использовать комментатор

<p><small><strong>XHTML:</strong> Вы можете использовать теги в комментариях:<br> <?php echo allowed_tags(); ?></small></p>
Функция для закрытия цикла добавления комментариев и сообщение о закрытой форме добавления комментариев
<?php endif; ?>
<?php else : ?>
<p><?php _e('Sorry, the comment form is closed at this time.'); ?></p>
<?php endif; ?>

ПОЛЕЗНЫЕ ФУНКЦИИ
Функция для вывода последних 7-ми постов

<?php query_posts('showposts=7'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<a href="<?php the_permalink() ?>"><?php the_title() ?><br></a>
<?php endwhile; endif; ?>

Функция для вывода последних 7-ти постов из 5-й категории

<?php
global $post;
$myposts = get_posts('numberposts=7&category=5');
foreach($myposts as $post) :
?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>

Функция для вывода связанных (схожих по тематике) постов

<?php st_related_posts('number=7&amp;amp;amp;amp;amp;amp;amp;amp;amp;
title=&amp;amp;amp;amp;amp;amp;amp;amp;amp;
include_page=false&amp;amp;amp;amp;amp;amp;amp;amp;amp;
xformat=<a href="%permalink%" mce_href="%permalink%" title="%title% (%date%)">%title%</a>'); ?>

Функция для вывода последних 7-ти постов через подключение к БД

<?
$mysql_host = 'localhost';
$mysql_user = 'пользователь';
$mysql_pass = 'пароль';
$mysql_db = 'база';
mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die("Could not connect DB\n");
mysql_select_db($mysql_db) or die("Could not select database");
$result = mysql_query ("SELECT * FROM wp_posts WHERE post_type='post' ORDER BY post_date DESC LIMIT 7");
while ($row = mysql_fetch_array ($result)) {
print <<<TTT
<li><a href="http://www.имясайта.org.ru/?p={$row['ID']}">{$row['post_title']}</a></li>
TTT;
}
?>

Функция для определения шаблона страницы

<?php
/*
Template Name: name_page
*/
?>
Рубрика: Учебник WordPress | 10 апреля 2009

Предыдущие записи из рубрики `Учебник WordPress`

10 комментариев

Руслан, 11.06.2009 в 13:13

Класс!Очень полезный пост!

ОтветитьОтветить
[email protected], 01.08.2009 в 14:29

Статья требует похвалы! Спасибо автору! Этот пост позволил многое разъяснить. Я очень благодарен за проделанную работу!

ОтветитьОтветить
SLUSYPHYPECAP, 07.11.2009 в 10:53

Спасибо огромное

ОтветитьОтветить
Хайпер, 05.12.2009 в 17:22

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

ОтветитьОтветить
Алексей, 16.01.2010 в 01:05

Кто знает подскажите плиз как сделать так что б тебе показывало кол-во комментов к посту но без ссылки?
Просто данная ф-ция:

< ?php comments_popup_link('Нет комментариев', '1 Комментарий', '% Комментариев'); ?>
< ?php comments_template(); ?>

она выводит кол-во комментов но с ссылкой, а мне надо без, для того что б я смог видоизменить её то есть создать ей стиль в CSS и присоединить.

ОтветитьОтветить
Deimos, 16.01.2010 в 01:18

Алексей, ну если я правильно Вас понял то так:
< ?php comments_number('Нет комментариев', '1 Комментарий', '% Комментариев' );?>
< ?php comments_template(); ?>

ОтветитьОтветить
Алексей, 16.01.2010 в 12:13

Ещё раз спасибо.

ОтветитьОтветить
Владимир, 07.05.2011 в 16:14

Классная статья! Добавил к себе в закладки. У меня еще вопросик. А как должна выглядеть функция вывода 5 последних записей с кратким описанием?

ОтветитьОтветить
Joliat, 09.09.2011 в 02:18

Спасибо за comments_number, нигде не мог найти!

ОтветитьОтветить
Велимудр, 11.01.2014 в 09:57

Эта метка:

<?php get_footer(); ?>

в новой версии блога, во-первых, под корень срывает дизайн подвала, пихая беспардонно свой, во-вторых, выкладывая И теги, И ещё какой-то блок ссылок, который невозможно из панели убрать, так ещё и вставляет разработчиков, авторство и так далее.
Вопрос - на кой лад мне эта функция, если я могу НОРМАЛЬНЫМ методом подключить нужный мне файл и ни каких проблем?
Я понимаю - напоминание веб мастерам кто хУзяин и создатель блога и кому они должны, но зачем СРАТЬ своими авторствами на сайте? большинство на оборот желают как можно лучше замаскировать систему управления, а они - НА! ХУЙ ВАМ, ЗНАЙТЕ НАС ВСЕ!
Только из-за одной этой выходки можно послать их на грядку и перейти на другую цмс.
Кстати, второй способ подключить сайдбар не работает.
И вот ещё что - не вздумайте устанавливать модуль интернет-магазина "ВП Е-Комерция", дырявый как решето.

ОтветитьОтветить

Комментировать