10 сниппетов, которые должен знать каждый разработчик wordpress

 

10 сниппетов, которые должен знать каждый разработчик wordpress1. Абсолютный путь к директории шаблона

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

Пример использования в HTML коде


<img src="<?php bloginfo('template_directory'); ?>/images/header.jpg" alt="Изображение для шапки" />
<script src="<?php bloginfo('template_directory'); ?>/js/jquery.js" type="text/javascript">

2. Этот кусок кода позволит вам вывести последние посты в любом месте вашего шаблона


<?php $query = new WP_Query(''); ?>
<?php if($query->have_posts()) : ?><?php while($query->have_posts()) : $query->the_post(); ?>
<?php the_content(); ?>
<?php endwhile; endif; ?>

Вот небольшой пример, как это будет выглядеть в файле index.php


<?php $featured = new WP_Query('showposts=3&tag=featured'); ?>
<?php if($featured->have_posts()) : ?>
<ul id="featured">
<?php while($featured->have_posts()) : $featured->the_post(); ?>
<li><a href="<!--?php the_permalink(); ?-->" title="<?php the_title(); ?>"><?php the_post_thumbnail(‘full’); ?></a></li>
<?php endwhile; ?>
</ul>
<?php endif; ?>

3. Код для того чтобы сделать начало цикла вывода постов

 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> 

 

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

Также как и предыдущий, этот кусок кода используется для вывода постов в любом месте шаблона


<div class="content">
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<?php the_content(); ?>
<?php endwhile; else: ?>
<p>Извините, посты не найдены.
 <?php endif; ?>
</div>

4. Этот небольшой отрывок кода используется для возврата абсолютной ссылки на страницу или пост.

<?php the_permalink(); ?>  

В шаблоне сайта это выглядит следующим образом

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

5. Как узнать значения произвольных полей (custom field)

<?php echo get_post_meta($post->ID, 'custom-field-key', true); ?> 
 <a class="button_buynow" href="<?php echo get_post_meta($post->ID, 'affiliate', true); ?>" title="Купить <?php the_title(); ?>">Купить сейчас!</a> 

6. После того как wordpress 3.0 представил новую функцию меню, появился небольшой сниппет, который предназначен для корректного вывода пунктов меню

 <?php wp_nav_menu( array( 'menu' => 'Navigation', 'sort_column' => 'menu_order' ) ); ?>  

7. Директива include, которая позволяет подключать в отдельно взятые  файлы сторонние файлы.


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

8. Динамическое подключение сайдбаров

<?php if(!function_exists('dynamic_sidebar') || !dynamic_sidebar('Sidebar') ) : ?><?php endif; ?>

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


<?php
if (function_exists('register_sidebar') )
 register_sidebar(array(
 'before_widget' => '<div class="widget">',
 'after_widget' => '</div>',
 'before_title' => '<h2>',
 'after_title' => '</h2>',
 ))
;
?>

9. Подключения шапки, подвала или сайдбара. Как известно wordpress позволяет собирать шаблон сайта по кускам, так что отдельно взятая страница может не включать, к примеру, сайдбар или подвал.

<div><?php get_header(); ?>
<?php get_footer(); ?>
<?php get_sidebar(); ?></div>

10. Многие разработчики прежде чем создавать файлы header.php, footer.php и sidebar.php создают общий файл index.php и делают шаблон в нём. После того как шаблон начинает работать корректно, разбивают его на 3 части и разносят код по соответствующим файлам.

Так выглядит изначально файл index.php у Дэна Дэвиса


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
 <title><?php wp_title(''); ?></title>
 <meta name="generator" content="WordPress <?php bloginfo('version'); ?>" /> <!-- leave this for stats -->
 <link rel="stylesheet" href="<!--?php bloginfo('stylesheet_url'); ?-->" type="text/css" media="screen" />
<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'); ?>" />
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
 <?php wp_enqueue_script('jquery'); ?>
<?php wp_head(); ?>
 </head>
 <body <?php body_class(); ?>>
 <?php wp_footer(); ?>
</body>
</html>



Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *