Функции в темах 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(' &#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; ?>

Код для вывода последних 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»:
Комментариев: 15. Обязательно оставьте свой!
Юрий 14.04.2009 в 21:53

Спасибо!Очень полезная статья но у меня вот проблема нужно вывести аватар автора в коде плагина а точнее в сплывающем java окне.Есть ли такая возможность?

pistol 20.04.2009 в 11:21

Ничего не понятно, в коде какого плагина? Про аватары инфу можно найти тут.

Юрий_(Y) 15.06.2009 в 9:47

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

Вы хотя бы предупреждайте своих пользователей об этом….

pistol 15.06.2009 в 10:03

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

Думаю, хозяин сайта скоро обнаружит вредоносный код в своем шаблоне. Пока уберу ссылку.

фото блог 21.05.2010 в 8:05

Спасибо, очень подробно описаны функции.

fos 04.06.2010 в 23:45

Очень грамотно и полезно написано,скорее всего Вы знаете – как разрешить пользователям добавлять свои аватары на сайт WP (не граватары а свои картинки). Поделитесь пожалуйста! Плагина такого ни как не найду,может кодом можно?

pistol 05.06.2010 в 7:37

Только граватары.
Потому как никто не будет загружать картинку ради одного комментария.

mareg 04.07.2010 в 17:17

Дизайн в хроме ой как поплыл, посмотрите, поправьте…

Елена 05.07.2010 в 11:30

Спасибо! Очень полезная статья, во многом помогла)))

Света 06.08.2010 в 22:52

Огромное Вам Спасибо! В Рунете как-то все статьи или для совсем новичков с расписыванием шаблона в фотошопе от хидера до футера или сразу – фичи, апач, хтасекс… А если в хтмл и css -можешь уже до валидности подогнать и jquery(готовый, вкусный) вставить, только php- совсем 0, тогда дело дрянь. Все пишут – вордпресс, тот же хтмл, хотя на самом деле хтмл абсолютно кастрированный и крутится по другому принципу. И если у тебя есть основная работа(ну нет времени на серьезное изучение), просто ты пытаешься перекроить чужую бесплатную тему для себя- невозможно найти толковые вразумительные примеры и ответы на вопросы именно по кодам вордпресса. Спасибо, вы мне очень помогли.

Игорь 03.01.2011 в 22:46

Снимаю шляпу. Мое почтение! Спасибо за лаконичные и емкие статьи!

Алексей 30.07.2011 в 17:15

СПАСИБО!!! ОЧЕНЬ ПОМОГЛИ!

Partez 18.09.2011 в 23:47

Автору большущее спасибо. Пользуюсь этой страничкой теперь как справочником.


Хорошая подборка функций, браво!

videochat 14.10.2011 в 22:50

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

Ваш комментарий: