Функции в темах WordPress
Опубликовано 21 января, 2009 в WordPressНашел интересный материал, хорошее дополнение к этому посту. Список всех функций в темах WopdPress с описанием каждой.
Итак, все функции в шаблонах WordPress:
HEADER.PHP
Код для вывода заголовка блога (простой вариант):
<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)
if ( function_exists('register_sidebar') )
register_sidebars(2);(array(
'before_widget' => '',
'after_widget' => '',
'before_title' => '<h4>',
'after_title' => '</h4>',
));
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(' — ', __('« Previous Page'), __('Next Page »')); ?>
Код для вывода ссылки на комментарии текущей статьи
<?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') ?>">Выйти »</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>Сайт ( <noindex> )</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; ?>
Код для вывода последних 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 */ ?>
Комментариев: 15. Обязательно оставьте свой!
Спасибо!Очень полезная статья но у меня вот проблема нужно вывести аватар автора в коде плагина а точнее в сплывающем java окне.Есть ли такая возможность?
Ничего не понятно, в коде какого плагина? Про аватары инфу можно найти
Тот сайт, который Вы рекомендуете в начале поста в качестве первоисточника (computerlessons.ru) содержит в себе кучу троянов, которые сыплются на комп пользователя, как из рога изобилия.
Вы хотя бы предупреждайте своих пользователей об этом….
Ежедневно тысячи сайтов взламываются. Я не могу контролировать все ссылки на блоге и предупреждать, когда взламывается какой-то сайт.
Думаю, хозяин сайта скоро обнаружит вредоносный код в своем шаблоне. Пока уберу ссылку.
Спасибо, очень подробно описаны функции.
Очень грамотно и полезно написано,скорее всего Вы знаете – как разрешить пользователям добавлять свои аватары на сайт WP (не граватары а свои картинки). Поделитесь пожалуйста! Плагина такого ни как не найду,может кодом можно?
Только граватары.
Потому как никто не будет загружать картинку ради одного комментария.
Дизайн в хроме ой как поплыл, посмотрите, поправьте…
Спасибо! Очень полезная статья, во многом помогла)))
Огромное Вам Спасибо! В Рунете как-то все статьи или для совсем новичков с расписыванием шаблона в фотошопе от хидера до футера или сразу – фичи, апач, хтасекс… А если в хтмл и css -можешь уже до валидности подогнать и jquery(готовый, вкусный) вставить, только php- совсем 0, тогда дело дрянь. Все пишут – вордпресс, тот же хтмл, хотя на самом деле хтмл абсолютно кастрированный и крутится по другому принципу. И если у тебя есть основная работа(ну нет времени на серьезное изучение), просто ты пытаешься перекроить чужую бесплатную тему для себя- невозможно найти толковые вразумительные примеры и ответы на вопросы именно по кодам вордпресса. Спасибо, вы мне очень помогли.
Снимаю шляпу. Мое почтение! Спасибо за лаконичные и емкие статьи!
СПАСИБО!!! ОЧЕНЬ ПОМОГЛИ!
Автору большущее спасибо. Пользуюсь этой страничкой теперь как справочником.
Хорошая подборка функций, браво!
спасибо за пост, надо распечатать страницу и пользоватся как справочником.Все хотел разобратся с вордпресом и его темами.