zhukovec
11/11/2017 - 3:05 PM

Wordpress

Wordpress

1) header и footer перемещаем в отдельные файлы header.php и footer.php
на их местах в index.php вставляем команды:
<?php get_header();?> // подключаем header
<?php get_footer();?> // подкючаем footer
2) в header.php после всех стилей добавляем функцию <?php wp_head();?>. В footer.php после всех скриптов добавляем <?php wp_footer();?>
3) ко всем локальным путям добавляем функцию по образцу: 
<link rel="stylesheet" href="<?php echo get_template_directory_uri();?>/css/main.css">
<script src="<?php echo get_template_directory_uri();?>/js/main.js"></script>
<img src="<?php echo get_template_directory_uri();?>/img/photo.jpg" alt="my-photo">
4) удалить admin bar. В файл functions.php добавить:
<?php
show_admin_bar(false);
5) Регистрация виджета (http://codex.wordpress.org/Widgetizing_Themes), вставить в function.php:
<?php
/**
 * Register our sidebars and widgetized areas.
 *
 */
function arphabet_widgets_init() {

	register_sidebar( array(
		'name'          => 'Home right sidebar',
		'id'            => 'home_right_1',
		'before_widget' => '<div>',
		'after_widget'  => '</div>',
		'before_title'  => '<h2 class="rounded hidden">', // добавляем hidden если нужно скрыть заголовок
		'after_title'   => '</h2>',
	) );

}
add_action( 'widgets_init', 'arphabet_widgets_init' );
Вывести виджет в index.php:
<?php dynamic_sidebar( 'home_right_1' ); ?>
6) Вывести название сайта:
<?php echo get_bloginfo("name");?>
Описание сайта:
<?php echo get_bloginfo("description");?>
7) Подключить theme options из общего макета, настроить вывод нужных параметров. Стили подключать по примеру:
<link rel="stylesheet" href="<?php echo get_template_directory_uri();?>/css/<?php
                               $options = get_option("sample_theme_options");
                               echo $options["selectinput"];
                               ?>.css">
8) Для секций в вордпрессе создаем рубрики. Заголовки секций выводим из названия и описания рубрики:
Название:
	<h2><?php
	        $idObj = get_category_by_slug("about");
	        $id = $idObj->term_id;
	        echo get_cat_name($id);
	        ?>
</h2>
Описание // ВНИМАНИЕ! category_description($id) возвращает содержание УЖЕ завернутое в тег p.
<?php
        $idObj = get_category_by_slug("about");
        $id = $idObj->term_id;
        echo category_description($id);
        ?>
9) Для того чтобы можно было добавлять к постам картинки в functions.php добавим:
add_theme_support( 'post-thumbnails' ); 

10) Для того чтобы получить заголовок поста:
<?php 
        $post=get_post(6);
        echo get_the_title($post);
?>
Для того чтобы получить содержимое поста (заворачивается в p): //ВНИМАНИЕ! При этом срабатывает waypoints. Если нужна анимация, то
сначала нужно дополнительно удалить в JS классы animate.css после загрузки документа.
<?php
        $my_post = get_post(6);
        echo $my_post->post_content;
?>

11) Получаем thumbnail из поста:
<?php if (has_post_thumbnail(13)):?>
        <a class="popup-link" href="<?php 
                $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(13), 'large');
                echo $large_image_url[0];
                ?>" title="<?php the_title_attribute(); ?>">
        <?php the_post_thumbnail(13);?>
        </a>
<?php endif;?>

12) 
Эти поля – часть функциональности ядра WordPress, которая в явном виде может и не использоваться. Между тем, 
настроить это можно достаточно просто на вашем WordPress-сайте. 
По умолчанию такие поля невидимы, и чтобы включить их отображение, нужно перейти к ‘Настройкам экрана’ 
вверху справа в Консоли и к вкладке по добавлению нового поста или редактирования существующей страницы.
Вызвать дополнительное поле:
<?php echo get_post_meta($post->ID, "label_name", true);?>

13) Выводим повторяющиеся айтемы:
<?php
        $idObj = get_category_by_slug("portfolio");
        $id = $idObj->term_id;
        if ( have_posts() ) : query_posts('cat=' . $id);
           while (have_posts()) : the_post(); ?>
           <?php the_title(); ?>
           <?php the_content(); ?>
           <?php the_post_thumbnail(array(100, 100)); ?>
           <? endwhile; endif; wp_reset_query(); 
        ?>
 ВНИМАНИЕ! Лучше использовать:
 <?php
       if ( have_posts() ) : $posts = get_posts(array('category_name' => 'portfolio', 'order' => 'ASC', 'numberposts' => 8));
        foreach( $posts as $post ){ setup_postdata($post);?>
              <div class="col-md-3 portfolio-item mix"> 
                <?php the_post_thumbnail(array(800, 600)); ?>
                  <a href="#gallery1" class="popup-work">
                  <h3><?php the_title(); ?></h3>
                  <?php the_content(); ?>
                </div>
 <?}; endif;?>
              
14) Чтобы не писать год вручную 
<?php echo date("Y");?>