MaxGrin of Silk Design
8/8/2017 - 12:32 PM

Wordpress Guide

Wordpress Guide

Для начала нужны:
1. Движок WP - https://wordpress.org/download/
   Язык админки = язык сайта
2. Начальный шаблон темы - https://www.dropbox.com/s/p73fzzxhyqw25no/wp-template.zip?dl=0

Далее нужно всю верстку перенести в директорию шаблона.

---------------------------

Полезные сайты:
https://wp-kama.ru
https://generatewp.com
https://codex.wordpress.org/Установка_WordPress

---------------------------
Структура шаблона:

index.php — файл отвечает за отображение главной страницы WordPress шаблона. При верстке своего макеты всегда помните, что главная страница может быть как статичной, так и динамичной.
single.php — файл, отвечающий за вывод каждого отдельного поста вашей темы. В качестве примера можно привести данную статью, которую вы читаете.
page.php — файл отвечает за формирование статичных страниц. Обычно это страницы: контакты, об авторе, о ресурсе и т.д.
header.php — формирует шапку сайта, и хранит в себе все важные метатеги для продвижения.
footer.php — файл отвечает за отображение подвала сайта.
sidebar.php — формирует отображение сайдбара или по-русски боковой колонки блога или сайта.
functions.php — файл, отвечающий за дополнительный функционал шаблона. Например: вывод последних комментаторов на моем блоге формируется именно в этом файле.
comments.php — файл отвечает за отображение комментариев у шаблона.
404.php — отвечает за отображение страницы с 404 ошибкой.
search.php — файл, отвечающий за отображение страницы поиска.
category.php — файл отвечает за отображение анонсов в категориях (если файла нет, то формирование осуществляется за счет файла index.php)
tag.php — файл отвечает за отображение анонсов на странице тегов (если файла нет, то формирование осуществляется за счет файла index.php)
taxonomy.php — файл отвечает за отображение анонсов на страницах таксономии (если файла нет, то формирование осуществляется за счет файла index.php)
author.php — файл отвечает за отображение анонсов статей определенного автора (если файла нет, то формирование осуществляется за счет файла index.php)
attachment.php — отвечает за вывод прикрепленного файла.
searchform.php — отвечает за формирование формы поиска.

---------------------------

Сниппеты для вывода контента:

Подключение стилей и скриптов в файле /includes/theme_functions.php

if (!function_exists('autozalog_js')) {
    function autozalog_js() {
	
    // stylesheet
		wp_enqueue_style('core-style', get_template_directory_uri() . '/css/style.css', false, '1');
		wp_enqueue_style('theme-style', get_stylesheet_uri(), false, '1');
		
		
    }
}

function autozalog_footer_script(){
    
    // scripts
	  wp_enqueue_script('core-scripts', get_template_directory_uri() . '/js/scripts.js', array(), '1.0.0', true );
	
} 

-------------- Простой цыкл - используется в записях блога и статьях
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
			
<?php endwhile; else : ?>
	<p><?php _e( 'Извините, ничего не найдено.' ); ?></p>
<?php endif; ?>

--------------- Цыкл с возможностью настройки выводимого контента - используется если нужно вывести посты из custom_post_type
<?php $the_query = new WP_Query('order=ASC'); ?>
<?php if ( $the_query->have_posts() ) : ?>
	<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
		
	<?php endwhile; ?>
	<?php wp_reset_postdata(); ?>
<?php else : ?>
	<p><?php _e( 'Извините, ничего не найдено.' ); ?></p>
<?php endif; ?>

--------------- Вывод навигации
<?php wp_nav_menu(array('theme_location' => 'main-menu', 'container' => false)); ?>

--------------- Вывод шорткода
//Self Closed
function example_shortcode( $atts ) {
	// Attributes
	$a = shortcode_atts( array(
		'title' => '',
		'link'  => ''
	), $atts );
	return '<a href="' . esc_attr($a['link']) . '">' . esc_attr($a['title']) . '</a>';
}
add_shortcode( 'shortcode', 'example_shortcode' );

//Non Self Closed
function example_shortcode( $atts, $content = null ) {
	return '<span>' . do_shortcode($content) . '</span>';
}
add_shortcode( 'shortcode', 'example_shortcode' );

---------------- Вывод сайдбара
//Register Sidebar
function lawyer_widgets_init() {

	register_sidebar( array(
	'name'          => 'Нижний сайдбар',
	'id'            => 'footer_sidebar',
    'before_widget' => '<div class="widget">',
    'after_widget' => '</div>',
    'before_title' => '<div class="widget-title">',
    'after_title'  => '</div>'
	) );

}
add_action( 'widgets_init', 'lawyer_widgets_init' );

//Embed widgets
<?php if ( is_active_sidebar( 'sidebar_widgets' ) ) : ?>
	<div id="primary-sidebar" class="primary-sidebar widget-area" role="complementary">
		<?php dynamic_sidebar( 'sidebar_widgets' ); ?>
	</div><!-- #primary-sidebar -->
<?php endif; ?>

---------------------------------
---------------------------------
---------------------------------

Работа с метабоксами:
Шаг 1. Нужно установить плагин OptionTree.
Шаг 2. В админке, создать метабоксы через визуальный редактор. 
Шаг 3. Вывод контента.

------------------ Обычный метабокс
<?= ot_get_option('id'); ?>

------------------- Список
<?php
  $list = ot_get_option('id', array());
  foreach ($list as $item) {
    echo 'Content';
  }
?>

------------------- Галерея
<?php 
if ( function_exists( 'ot_get_option' ) ) {
	$images = explode( ',', ot_get_option( 'your_id', '' ) );
	if ( ! empty( $images ) ) {
		foreach( $images as $id ) {
			if ( ! empty( $id ) ) {
				$full_img_src = wp_get_attachment_image_src( $id, '' );
				echo '<li><img src="' . $full_img_src . '"/></li>';
			}
		}
	}
}
?>