WordPress как на ладони
Вход . Регистрация
Свернуть все

Заголовки Темы style.css

/**
 * Theme Name:  Название темы (обязательно)
 * Template:    Название родительской темы. Пр: Twenty Seventeen
 * Description: Короткое описание темы.
 * Theme URI:   URL темы. Пр: http://wordpress.org/themes/twenty
 * Author:      Имя автора
 * Author URI:  URL автора
 * License:     Лицензия. Пр: GNU General Public License v2 or later
 * License URI: http://www.gnu.org/licenses/gpl-2.0.html
 * Tags:        black, brown, orange
 * Text Domain: Домен перевода темы. Пр: twentythirteen
 * Version:     1.0
 */
Заголовки style.css

Файлы Темы (подключение)

Функции подключения файлов Темы

Файлы Темы (иерархия) /themes/ТЕМА/

  • style.cssФайл стилей темы (обязательный)
  • index.phpЛюбая страница без файла шаблона (обязательный)
  • front-page.phpГлавная страница
  • home.phpСтраница Постов (или Главная страница)
  • functions.phpСпециальный файл для php функций (кода)
  • 404.phpСтраница "не найдено"
  • comments.phpШаблон Комментариев (подключаемый)
  • header.phpШаблон Шапки сайта (подключаемый)
  • searchform.phpШаблон формы Поиска (подключаемый)
  • sidebar.phpШаблон Боковой панели (подключаемый)
  • footer.phpШаблон Подвала сайта (подключаемый)
  • single.phpЗапись (пост)
  • single-POST_TYPE.phpЗапись типа POST_TYPE
  • single-POST_TYPE-POST_NAME.phpЗапись POST_NAME типа POST_TYPE
  • singular.phpЗапись любого типа
  • page.phpПостоянная Страница
  • page-POST_NAME.phpСтраница с Именем POST_NAME
  • page-ID.phpСтраница с ID
  • attachment.phpСтраница Вложения
  • image.phpСтраница Вложения-картинки
  • archive.phpСтраница любого Архива
  • archive-POST_TYPE.phpСтраница Архива типа записи
  • search.phpСтраница Поиска
  • category.phpСтраница Рубрики
  • category-SLUG.phpСтраница Рубрики со слагом
  • category-ID.phpСтраница Рубрики с id
  • tag.phpСтраница Метки
  • tag-SLUG.phpСтраница Метки со слагом
  • tag-ID.phpСтраница Метки с id
  • taxonomy.phpСтраница любого Термина
  • taxonomy-TAXONOMY.phpСтраница Термина таксономии TAXONOMY
  • taxonomy-TAXONOMY-SLUG.phpСтраница Термина SLUG таксономии TAXONOMY
  • author.phpСтраница постов Автора
Иерархия файлов Темы

Шаблон записи из любого файла, подробнее:

<?php
/*
Template Name: Мой шаблон страницы
Template Post Type: post, page, product
*/

// … остальной код шаблона

Информация о сайте bloginfo

  • bloginfo()Выводит информацию о сайте
  • get_bloginfo()Получает информацию о сайте
  •  
  • <?php bloginfo('name'); ?>Название сайта
  • <?php bloginfo('description'); ?>Короткое описание сайта
  • <?php bloginfo('template_url'); ?>URL Темы: get_template_directory()
  • <?php bloginfo('template_directory'); ?>Тоже что и template_url
  • <?php bloginfo('stylesheet_directory'); ?>URL Темы: get_stylesheet_directory_uri()
  • <?php bloginfo('stylesheet_url'); ?>URL файла темы style.css: get_stylesheet_uri()
  • <?php bloginfo('charset'); ?>Кодировка сайта: UTF-8
  • <?php bloginfo('html_type'); ?>Content-Type страницы: text/html
  • <?php bloginfo('language'); ?>Локаль сайта (язык): ru-RU
  • <?php bloginfo('version'); ?>Версия WordPress: 5.0.3
  • <?php bloginfo('rss2_url '); ?>URL фида: /feed
  • <?php bloginfo('comments_rss2_url'); ?>URL фида комментов: /comments/feed
  • <?php bloginfo('admin_email'); ?>E-mail Админа
  •  
  • <?php bloginfo('pingback_url'); ?>URL уведомлений на на файл xmlrpc.php
  • <?php bloginfo('rdf_url'); ?>URL RDF/RSS 1.0 фида (/feed/rfd)
  • <?php bloginfo('rss_url'); ?>URL RSS 0.92 фида (/feed/rss`)
  • <?php bloginfo('atom_url '); ?>URL Atom фида (/feed/atom)
  • <?php bloginfo('url'); ?>URL Фронта. Псевдомин home_url()
  • <?php bloginfo('wpurl'); ?>URL Админки. Псевдомин site_url()

Цикл The Loop

  • in_the_loop()Проверяет активен ли цикл WordPress
  • have_posts()Проверяет есть ли записи для вывода
  • the_post()Устанавливает следующий пост в цикле и global $post
  • setup_postdata()Устанавливает global $post
  • the_ID()Выводит ID текущего поста
  • the_title()Выводит заголовок текущей записи
  • the_title_attribute()Выводит заголовок записи для атрибута html тега
  • the_content()Выводит контент записи
  • the_excerpt()Выводит отрывок (цитату) записи, со вставкой в конеце [...]
  • the_excerpt_rss()Выводит отрывок (цитату) (для RSS)
  • get_permalink()Получает URL записи
  • the_permalink()Выводит URL записи
  • comments_number()Выводит число комментариев записи
  • edit_post_link()Выводит ссылку (html) на редактирование поста
  •  
  • the_date()Выводит/получает дату публикации записи
  • get_the_date()Получает дату создания текущего поста
  • the_time()Выводит время (дату) публикации записи
  • get_post_time()Получает время (дату) публикации записи
  • the_modified_date()Выводит время (дату), когда пост был изменен
  •  
  • the_post_thumbnail()Выводит html код картинки-миниатюры текущего поста
  • get_post_thumbnail_id()Получает ID миниатюры записи
  • has_post_thumbnail()Имеет ли запись картинку-миниатюру. Условный тег
  • the_post_thumbnail_url()Выводит URL миниатюры записи
  • the_attachment_link()Выводит ссылку (тег A) вложения или страницы вложения
  • get_attachment_link()Получает URL на страницу вложения (во фронте)
  • wp_get_attachment_link()Получает ссылку (тег A) вложения или страницы вложения
  •  
  • the_tags()Выводит ссылки на метки записи
  • the_category()Выводит рубрики записи в виде ссылок
  • the_taxonomies()Выводит ссылки <a> на термины записи
  • in_category()Проверяет принадлежит ли записиь к категории
  • sticky_class()Выводит класс "sticky", если это пост прилепленный пост
  • is_sticky()Проверяет прилеплен ли пост к главной странице сайта
  • the_meta()Выводит метаполя записи в <li> списке
  • get_post_format()Получает формат (тип) поста: quote, status, video, audio
  •  
  • the_author()Выводит имя автора поста
  • get_the_author()Получает имя автора поста (display_name)
  • the_author_link()Выводит ссылку (A тег) на сайт автора поста
  • get_the_author_link()Получает ссылку (A тег) на сайт автора поста
  • the_author_posts()Выводит общее число постов, написанных текущим автором
  • the_author_posts_link()Выводит html код ссылки на страницу постов автора записи
  • the_author_meta()Выводит метаполе автора поста
  • get_the_author_meta()Получает метаполе автора поста
  • the_modified_author()Выводит имя автора, который последним изменял пост
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
   <!-- Вывода постов, функции цикла: the_title() и т.д. -->
<?php endwhile; else: ?>
	Записей нет.
<?php endif; ?>
<?php if ( have_posts() ){ while ( have_posts() ){ the_post(); ?>
	<!-- Вывода постов, функции цикла: the_title() и т.д. -->
<?php } } else { ?>
	Записей нет.
<?php } ?>
<?php while ( have_posts() ){ the_post(); ?>
	<!-- Вывода постов, функции цикла: the_title() и т.д. -->
<?php } ?>
<?php if ( ! have_posts() ){ ?>
	Записей нет.
<?php } ?>
<?php
global $post;

$myposts = get_posts([ 
	'numberposts' => 5,
	'offset'      => 1,
	'category'    => 1
]);

if( $myposts ){
	foreach( $myposts as $post ){
		setup_postdata( $post );
		?>
		<!-- Вывода постов, функции цикла: the_title() и т.д. -->
		<?php 
	}
} else {
	// Постов не найдено
}

wp_reset_postdata(); // Сбрасываем $post
?>
<?php		
global $post;

$query = new WP_Query( [
	'posts_per_page' => 5,
	'orderby'        => 'comment_count',
] );

if ( $query->have_posts() ) {
	while ( $query->have_posts() ) {
		$query->the_post();
		?>
		<!-- Вывода постов, функции цикла: the_title() и т.д. -->
		<?php 
	}
} else {
	// Постов не найдено
}

wp_reset_postdata(); // Сбрасываем $post
?>
Цикл «the loop»3 способа построения циклов

Теги шаблона

  • home_url()Получает URL главной страницы сайта
  • site_url()Получает URL админки-сайта
  • wp_get_document_title()Получает заголовок страницы для <title>
  • the_archive_title()Выводит заголовок архивной страницы: метка, рубрика, дата
  • single_term_title()Выводит/получает заголовок страницы термина
  • single_post_title()Выводит/получает заголовок страницы записи
  • single_cat_title()Выводит/получает заголовок страницы рубрики/метки
  • body_class()Выводит css классы для тега <body>
  • wp_head()Запускает хук wp_head. Для файла header.php
  • wp_footer()Запускает хук wp_footer. Для файла footer.php
  • wp_list_categories()Выводит список категорий в виде ссылок
  • wp_dropdown_categories()Выводит выпадающий список рубрик/таксономий
  • wp_list_comments()Выводит/получает комментарии записи
  • comment_form()Выводит форму комментирования
  • wp_tag_cloud()Выводит/получает облако меток
  • register_sidebar()Регистрирует панель виджетов
  • register_sidebars()Регистрирует панели виджетов (сразу несколько)
  • wp_nav_menu()Выводит произвольное меню, созданное в админке
  • register_nav_menu()Регистрируется одно место для меню
  • register_nav_menus()Регистрируется несколько мест для меню
  • wp_get_attachment_image()Получает IMG тег картинки
  • wp_get_attachment_image_src()Получает данные картинки: URL/ширина/высота
  • wp_get_attachment_image_url()Получает URL картинки по ID
  • category_description()Получает описание рубрики
  • term_description()Получает описание термина
  • get_the_term_list()Выводит список терминов записи в виде ссылок
  • get_avatar()Получает html код аватара, тег <img>
  • next_post_link()Выводит ссылку на следующую по дате запись
  • previous_post_link()Выводит ссылку на предыдущий по дате запись
  • wp_link_pages()Выводит пагинацию для многостраничных записей <!--nextpage-->
  • the_post_navigation()Выводит HTML блок ссылок на следующую/предыдущую записи
  • wp_get_archives()Выводит ссылки на страницы архивов по дате: дни, месяцы, годы
  • wp_login_form()Выводит HTML код формы входа
  • edit_tag_link()Выводит ссылку на редактирование текущей метки
Все Теги шаблона

Заголовки Плагина

<?php

/**
* Plugin Name: Название плагина
* Description: Описание плагина (140 символов)
* Plugin URI:  Ссылка на инфо о плагине
* Author URI:  Ссылка на автора
* Author:      Имя автора
*
* Text Domain: Идентификатор перевода. Пр: my-plugin
* Domain Path: Путь до MO файла перевода относительно папки плагина.
*
* License:     GPL2
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
*
* Network:     Укажите true, чтобы активировать плагин для Мультисайта.
* Version:     1.0
*/

// код плагина
Заголовки ПлагинаФайл readme.txt

Плагин

  • register_activation_hook()Регистрирует функцию активации плагина
  • register_deactivation_hook()Регистрирует функцию деактивации плагина
  • register_uninstall_hook()Регистрирует функцию удаления плагина
  •  
  • plugins_url()Получает URL папки плагинов/mu плагинов (без слэша на конце)
  • plugin_basename()Путь до файла плагина (от каталога плагинов)
  • plugin_dir_path()Получает путь до папки плагина (со слэшем на конце)
  • plugin_dir_url()Получает URL папки плагина (со слэшем на конце)
  •  
  • get_plugins()Получает данные плагинов (активных и неактивных)
  • get_plugin_data()Получает данные плагина из заголовков файла
  •  
  • activate_plugins()Активирует плагины
  • deactivate_plugins()Деактивирует плагины
  • is_plugin_active()Проверяет активен ли плагин. Работает только в админке

uninstall.php

<?php 
if( ! defined('WP_UNINSTALL_PLUGIN') ) exit;

// проверка пройдена успешно. Начиная от сюда удаляем опции и все остальное.
delete_option( 'plug_option' );
Создание Плагинов

Script и Style

add_action( 'wp_enqueue_scripts', 'add_my_scripts' );    // Фронт
add_action( 'admin_enqueue_scripts', 'add_my_scripts' ); // Админка
add_action( 'login_enqueue_scripts', 'add_my_scripts' ); // wp-login.php
function add_my_scripts(){

	if ( ! wp_script_is( 'my-script', 'enqueued' ) ) {
		// Cкрипт `my-script` не добавлен в очередь
	}
	
	if ( ! wp_style_is( 'my-style', 'registered' ) ) {
		// Стили `my-style` не зарегистрированы
	}
	
	wp_enqueue_script( 'my-script', 'src', ['deps'], '1.0', 'in_footer' );
	wp_enqueue_style(  'my-style',  'src', ['deps'], '1.0', 'all' );
	
	wp_enqueue_style( 'theme-style', get_stylesheet_uri() ); // style.css темы
	
	wp_localize_script( 'my-script', 'myajax', [
		'ajaxurl' => admin_url( 'admin-ajax.php' )
	] );
	
	wp_script_add_data( 'my-script', 'conditional', 'lt IE 9' );
	wp_style_add_data(  'my-style',  'conditional', 'lt IE 9' )
	
	wp_add_inline_script( 'my-scripts', 'alert("Привет!");' );
	wp_add_inline_style( 'my-style', '
		.mycolor{
			background: #fff;
		}
	');
	
	wp_deregister_script( 'my-script' );
	wp_deregister_style( 'my-style' );
}
Функции Script и Style

Функции Хуков

  • add_action()Вешает функцию на событие
  • remove_action()Удаляет функцию у события
  • did_action()Получает число, сколько раз было выполнено событие
  • do_action()Создает событие
  • do_action_ref_array()Создает событие. Аргументы массивом
  • has_action()Проверяет повешена ли функция на событие
  • current_action()Получает название текущего события
  • doing_action()Проверяет обрабатывается ли событие в текущий момент
  • remove_all_actions()Удаляет все функции прикрепленные к событию
  •  
  • add_filter()Вешает функцию на фильтр
  • remove_filter()Удаляет функцию у фильтра
  • apply_filters()Создает фильтр
  • apply_filters_ref_array()Создает фильтр. Аргументы массивом
  • has_filter()Проверяет повешена ли функция на фильтр
  • current_filter()Получает название текущего фильтра
  • doing_filter()Проверяет обрабатывается ли фильтр в текущий момент
  • remove_all_filters()Удаляет все функции прикрепленные к фильтру
function my_filter_function( $str ){
	return 'Здравствуйте '. $str;
}

// Прикрепим функцию к фильтру
add_filter( 'my_filter', 'my_filter_function' );

// Вызов фильтра
echo apply_filters( 'my_filter', 'Владимир' ); //> Здравствуйте Владимир
// Cоздадим функцию для события
function my_action_function( $text ){
	echo 'Событие `my_action` сработало сейчас.';
}

// Прикрепим функцию к событию 'my_action'
add_action( 'my_action', 'my_action_function' );

// Вызов события
do_action( 'my_action' ); //> Событие `my_action` сработало сейчас.
Как работают хуки в WordPress

Локализация (переводы)

  • __()Получает перевод строки
  • _e()Выводит перевод строки
  • _n()Получает перевод строки после числа
  •  
  • esc_attr__()Получает перевод строки + esc_attr()
  • esc_attr_e()Выводит перевод строки + esc_attr()
  • esc_html__()Получает перевод строки + esc_html()
  • esc_html_e()Выводит перевод строки + esc_html()
  •  
  • _x()Получает перевод строки для контекста
  • _ex()Выводит перевод строки для контекста
  • _nx()Получает перевод строки после числа для контекста
  •  
  • date_i18n()Получает переведенную дату. Локализация для date()
  •  
  • determine_locale()Получает локаль сайта, подходящую для текущего запроса
  • get_locale()Получает локаль сайта. Пр: en_US
  • get_user_locale()Получает локаль юзера
  • switch_to_locale()Переключает локаль сайта
  • is_locale_switched()Проверяет была ли использована switch_to_locale()
  •  
  • load_plugin_textdomain()Загружает .mo файл из папки плагина
  • load_muplugin_textdomain()Загружает .mo файл из папки MU плагина
  • load_theme_textdomain()Загружает .mo файл из папки темы
  • load_child_theme_textdomain()Загружает .mo файл из папки дочерней темы
  • load_textdomain()Загружает указанный .mo файл из любой папки
  • is_textdomain_loaded()Проверяет загружен ли .mo файл
  • unload_textdomain()Выгружает загруженный .mo файл
Фукнции ЛокализацииПереводы в WordPress

Условные теги (типов страниц и запросов)

if( is_single() ){
	// страница записи
}
  • wp_doing_ajax()Сработает при AJAX запросе в WordPress
  • wp_doing_cron()Сработает при запросе к Крону WordPress
  • is_ssl()Сработает для протокола HTTPS (SSL)
  • is_front_page()Главная страница сайта
  • is_home()Страница постов (или Главная страница сайта)
  • is_single()Страница записи любого типа кроме: attachment и page
  • is_singular()Страница записи любого типа
  • is_page()Страница "Постоянной страницы"
  • is_page_template()Используется ли для страницы файл шаблона
  • is_attachment()Страница вложения
  • is_search()Страница результатов поиска
  • is_archive()Страница архива: рубрика, метка, автор, дата
  • is_category()Страница категории
  • is_tag()Страница метки
  • is_tax()Страница записей пользовательской таксономии
  • is_post_type_archive()Страница записей произвольного типа
  • is_author()Страница с постами автора
  • is_date()Страница архива по дате
  • is_year()Страница архива "Записи за год"
  • is_month()Страница архива "Записи за месяц"
  • is_day()Страница архива "Записи за день"
  • is_time()Страница архива "Записи за час, минуту, секунду"
  • is_paged()Страница пагинации
  • is_404()Страница "Не найдено"
  • is_preview()Страница предпросмотра записи
  • is_feed()Страница Фида
  • is_admin()Админ-панель
  • is_network_admin()Раздел админки "Управление сетью" сайтов в Мультисайт
  • is_blog_admin()Раздел админки отдельного сайта в Мультисайт
  • is_user_admin()Раздел админки "Пользователь" в Мультисайт
  • is_customize_preview()Страница кастомайзера в админке
  • is_robots()Запрос к файлу robots.txt
  • is_embed()Страница встраивания записи
  • is_comment_feed()Страница фида комментариев
  • is_trackback()Страница пингов (trackback)

Условные теги (остальные)

if( is_user_logged_in() ){
	// юзер авторизован
}
  • is_user_logged_in()Авторизован ли пользователь
  • have_comments()Есть ли на странице комментарии для вывода
  • comments_open()Открыто ли комментирование у записи
  • has_category()Находится ли запись хоть в одной из рубрик
  • has_tag()Находится ли запись хоть в одной из меток
  • has_term()Находится ли запись хоть в одном термине таксономии
  • has_excerpt()Есть ли у текущего поста отрывок (цитата, короткое описание)
  • is_nav_menu()Существует ли меню (указываем ID, слаг или название)
  • has_nav_menu()Имеет ли зарегистрированная область меню прикрепленное меню
  • has_shortcode()Есть ли в переданном тексте указанный шоткод
  • shortcode_exists()Зарегистрирован ли указанный шоткод
  • in_category()Находится ли пост в рубрике
  • in_the_loop()Находимся ли мы в цикле перебора записей
  • is_active_sidebar()Есть ли в области для виджетов есть хоть один виджет
  • is_child_theme()Используется ли дочерняя тема
  • is_dynamic_sidebar()Включены ли сайдбары для темы и есть ли хоть один виджет
  • is_local_attachment()Является ли переданный URL страницей вложения
  • is_main_query()Выполняется ли действие в главном цикле WordPress
  • is_multisite()Включен ли режим Мультисайт
  • is_new_day()Отличается ли текущая дата от предыдущей (в цикле)
  • is_post_type_hierarchical()Является ли тип записи древовидным
  • is_taxonomy_hierarchical()Древовидная ли таксономия
  • is_sticky()Является ли запись прилепленной
  • pings_open()Разрешено ли записи получать пинги
  • post_exists()Есть ли запись с указанным заголовком (post_title)
  • taxonomy_exists()Существует ли указанная таксономия
  • post_password_required()Защищена ли запись паролем и правильный ли пароль
  • term_exists()Существует ли элемент таксономии (вернет ID терма)
  • cat_is_ancestor_of()Дочерняя ли рубрика к другой (все уровни вложенности)
  • term_is_ancestor_of()Дочерний ли термин к другому (все уровни вложенности)
  • wp_attachment_is()Является ли вложение: картинкой, аудио или видео
  • wp_attachment_is_image()Является ли запись вложением-картинкой
  • is_header_video_active()Нужно ли показать видео заголовка на странице
  • has_custom_header()Установлена ли картинка/видео для шапки темы
  • wp_is_mobile()С мобильного ли устройства просматривается сайт
  • wp_is_post_autosave()Является ли запись авто-сохранением
  • wp_is_post_revision()Является ли запись ревизией (редакцией)
Все Условные теги

Что добавить в шпаргалку?

  • Добавить ответ

Добавил:
- Переводы (8 голосов)

17 комментов
Здравствуйте, !     Войти . Зарегистрироваться