Вывести заголовки рубрик
//Массовое переименование
UPDATE wp_posts SET post_title = REPLACE( post_title, 'старый текст', 'новый текст' ) - правим в заголовке
UPDATE wp_postmeta SET meta_value = REPLACE( meta_value, 'старый текст', 'новый текст' ) - правим в мета
UPDATE wp_postmeta SET meta_value = REPLACE( meta_value, 'старый текст', 'новый текст' ) WHERE meta_key = '_aioseop_description' - только Description
Удаляем из БД вредный скрипт
UPDATE wp_posts SET post_content = REPLACE (post_content, '<script type="text/javascript" src="//css.googleaps.ru/css?f=Open+Sans&cd=mb&ver=4.2.2"></script>', '')
=================================================================
//Отключаем все ненужное
function my_deregister_scripts(){
wp_deregister_script( 'wp-embed' );
}
add_action( 'wp_footer', 'my_deregister_scripts' );
function my_scripts_method() {
wp_deregister_script('thickbox');
wp_enqueue_script( 'jquery' );
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
remove_action('wp_head','adjacent_posts_rel_link_wp_head');
remove_action('wp_head','adjacent_posts_rel_link_wp_head');
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
function my_deregister_styles() {
wp_deregister_style( 'dashicons' );
}
if (function_exists('add_theme_support')) { //Включаем меню
add_theme_support('menus');
}
function remove_styles () {
wp_deregister_style ('contact-form-7');
wp_deregister_style ('postratings');
}
add_action ('wp_print_styles','remove_styles',100);
add_theme_support( 'post-thumbnails', array( 'post' ) ); // Включаем миниатюры
add_filter( 'jpeg_quality', create_function( '', 'return 80;' ) );
=================================================================
Настроить поиск только по заголовкам
function search_only_title_toster_q411859($search, &$wp_query) {
global $wpdb;
if (empty($search)) {
return $search;
}
$q = $wp_query->query_vars;
$n = !empty($q['exact']) ? '' : '%';
$search =
$searchand = '';
foreach ((array) $q['search_terms'] as $term) {
$term = esc_sql(like_escape($term));
$search .= "{$searchand}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')";
$searchand = ' AND ';
}
if (!empty($search)) {
$search = " AND ({$search}) ";
if (!is_user_logged_in()) {
$search .= " AND ($wpdb->posts.post_password = '') ";
}
}
return $search;
}
add_filter('posts_search', 'search_only_title_toster_q411859', 500, 2);
=================================================================
Вывод галлереи из ACF
ставить оффициальный плагин после него скаченные дополнения
http://veraxo.com/blog/acf-addons/
или
https://drive.google.com/open?id=0B6ZSk-erOth7T3ZndWtRbnpjQW8
Доки:
https://www.advancedcustomfields.com/resources/gallery/
<? $imgJub =get_field('img-jub', 'option'); ?> - из страницы Option
<?php foreach( $imgJub as $image ): ?>
<a href="<?php echo $image['url']; ?>" class="fancybox">
<div class="galary__img" style="background-image:url(<?php echo $image['sizes']['large']; ?>)">
</div>
</a>
<?php endforeach; ?>
=================================================================
Пагинация вывод
<?
$args = array(
'cat'=> 5,
'posts_per_page' => 8,
'orderby' => 'date',
'order' => 'DESC',
'paged' => $paged
);
$argsPag = array(
'end_size' => 1, // количество страниц на концах
'mid_size' => 1, // количество страниц вокруг текущей
'prev_next' => True, // выводить ли боковые ссылки "предыдущая/следующая страница".
'prev_text' => __('Назад'),
'next_text' => __('Вперед'),
'add_args' => False,
'add_fragment' => '', // Текст который добавиться ко всем ссылкам.
'screen_reader_text' => __( '' ),
);
?>
<? query_posts($args);?>
<? while (have_posts()) : the_post(); ?>
код
<? endwhile; ?>
<?php the_posts_pagination($argsPag); ?> <----- включение пагинации
<? wp_reset_query();?>
add_filter('navigation_markup_template', 'my_navigation_markup_template');
function my_navigation_markup_template() {
return '
<nav class="navigation %1$s" role="navigation">
<div class="nav-links">%3$s</div>
</nav>';
} - убирает ненужный заголовок
.nav-links
margin: 20px 0
.page-numbers
padding: 10px
border 1px solid #cccccc
display: inline-block
.page-numbers.current
border 1px solid black
=================================================================
Категории изображений
Установить плагин Enhanced Media Library
https://wordpress.org/plugins/enhanced-media-library/
<?
$args = array(
'post_type' => 'attachment',
'post_status' => 'any',
'tax_query' => array(
array(
'taxonomy' => 'media_category', //стандартная таксономия не менять
'field' => 'id',
'terms' => 13 //id категории изображений
)
)
);
?>
<? query_posts($args);?>
<? while (have_posts()) : the_post(); ?>
<div style="background-image:url(<?=wp_get_attachment_image_url($curentImg,$size); ?>)" class="slider-items__el"></div>
<? endwhile; ?>
<? wp_reset_query();?>
=================================================================
Вывод меню из масива
if( $menu_items = wp_get_nav_menu_items('Меню для шапки') ) { // "Меню для шапки" - это название моего меню. Вы можете также использовать ID или ярлык
$menu_list = '';
foreach ( (array) $menu_items as $key => $menu_item ) {
$title = $menu_item->title; // заголовок элемента меню (анкор ссылки)
$url = $menu_item->url; // URL ссылки
$menu_list .= '<a href="' . $url . '">' . $title . '</a>';
}
echo $menu_list;
}
=================================================================
ACF Добавление страниц OPTION в меню
//https://www.advancedcustomfields.com/resources/options-page/
<?=get_field('contact_phone(придумать уникальное имя)', 'option(то, что option page)');?> - вывод любого значения из option page
<?
if( function_exists('acf_add_options_page') ) {
acf_add_options_page( );
acf_add_options_sub_page(array(
'page_title' => 'Theme General Settings',
'menu_title' => 'Награды',
'menu_slug' => 'theme-general-settings',
'capability' => 'edit_posts',
'redirect' => false
));
acf_add_options_sub_page(array(
'page_title' => 'Theme Header Settings',
'menu_title' => 'Header',
'parent_slug' => 'theme-general-settings',
));
acf_add_options_sub_page(array(
'page_title' => 'Theme Footer Settings',
'menu_title' => 'Footer',
'parent_slug' => 'theme-general-settings',
));
}
?>
=================================================================
ACF Вывод цикла из OPTION PAGE
<? if( have_rows('rewards','options') ): ?> //rewards - название страницы опции
<? while( have_rows('rewards','options') ): the_row(); ?>
<div href="#" class="reward__slider-el">
<div style="background-image:url(<? the_sub_field('img');?>)" class="reward__slider-el-img"></div>
<div class="reward__slider-el-text"><? the_sub_field('text');?></div>
</div>
<? endwhile; ?>
<? endif; ?>
=================================================================
Стандартный вывод цикла
<?
$args = array(
'cat'=> 5,
'posts_per_page' => 3,
'tag'=> main,
'orderby' => 'date',
'order' => 'DESC'
);
?>
<? query_posts($args);?>
<? while (have_posts()) : the_post(); ?>
<!-- can write -->
<?=get_the_date('j F Y'); ?>
<?=get_the_title(); ?>
<?=get_permalink(); ?>
<?=CFS()->get('img'); ?>
<?=wp_trim_words( get_the_content(), 12, ' ...' );?>
<?=get_the_content();?>
<?=get_the_date('j F Y'); ?>
<?=get_field('NAME_OF_FIELD');?> //acf
<!-- can write -->
<? endwhile; ?>
<? wp_reset_query();?>
=================================================================
Создать записи из массива
$metroArray = array('Авиамоторная');
foreach ($metroArray as $value) {
$title = 'Оценка залива метро ' .$value;
$content = '<P>Для Оценки у метро'.$value.' нужно пройти по улице</P> <p>[xyz-ihs snippet="price-zaliv"]</p>';
$post_data = array(
'post_title' => $title,
'post_content' => $content,
'post_status' => 'publish',
'post_author' => 1,
'post_category' => array(7),
'meta_input' => array( 'aioseop_description'=>'оценка метро'.$value )
'meta_input' => array( 'aioseop_title'=>'оценка метро'.$value )
);
$post_id = wp_insert_post( wp_slash($post_data) );
add_post_meta($post_id, '_aioseop_description', $value);
add_post_meta($post_id, '_aioseop_title', $value);
add_post_meta($post_id, 'metro', $value);
update_post_meta($post_id, 'ratings_average', 5);
update_post_meta($post_id, 'ratings_score', 5);
update_post_meta($post_id, 'ratings_users', 5);
}
=================================================================
Обновить рейтинги у всех записей нужной категории
<?
$args = array(
'cat'=> array(4,5,6,7)
);
query_posts($args);
while (have_posts()) : the_post();
$post_id = get_the_ID();
update_post_meta($post_id, 'ratings_average', 5);
update_post_meta($post_id, 'ratings_score', 5);
update_post_meta($post_id, 'ratings_users', 5);
endwhile;
wp_reset_query();
?>
=================================================================
Расширенные дополнительные поля
Advanced Custom Fields
// После вставки убери комментарии
// Плагин просто перенести в папку
https://drive.google.com/open?id=0B6ZSk-erOth7cDV3cVZ0Y3h4aDg - про версия
<?php the_field('type'); ?> - вывод произвольного поля type(имя поля)
<?php get_field('type'); ?> - получить значение, но не выводить
<?
//Функция получения перечня записей при множественном выборе
function select($a){
$values = get_field($a);
foreach($values as $value)
{
echo '<li>' . $value . '</li>';
}
}
$args = array(
'p'=> 12 // выбираем запись по ID
);
query_posts($args); // Стандартный loop WP
while (have_posts()) : the_post();
?>
<h1><?the_title() ?></h1>
<p><? the_content() ?></p>
<h2><? select('type'); ?></h2> //Вывод функции с типом поля "type"
<? if( have_rows('price') ): ?> // проверяем есть ли записи в главной строке то как называется самая первая строка
<? while( have_rows('price') ): the_row(); ?> //Loop для главной строки
<h2><? the_sub_field('book_price');?></h2> // Вывод внутренних строк // вывод дочерних элементов
<h4><? the_sub_field('color_book');?></h4>
<? endwhile; ?>
<? endif; ?>
<?
endwhile;
wp_reset_query();
?>
https://youtu.be/VBVum5VoYKE - видео по настройке
=================================================================
Получаем имя текущей категории
$category = get_the_category();
echo $category[0]->cat_name;
=================================================================
Удаляем каноникалы и короткие ссылки
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );
remove_action('wp_head', 'rel_canonical');
=================================================================
Выводим сниппет
<?php echo do_shortcode('[contact-form-7 id="220" title="Обратный звонок"]'); ?>
===================================================================
//переносим все скрипты в футтер
if(!is_admin()){
remove_action('wp_head', 'wp_print_scripts');
remove_action('wp_head', 'wp_print_head_scripts', 9);
remove_action('wp_head', 'wp_enqueue_scripts', 1);
add_action('wp_footer', 'wp_print_scripts', 5);
add_action('wp_footer', 'wp_enqueue_scripts', 5);
add_action('wp_footer', 'wp_print_head_scripts', 5);
wp_deregister_script('jquery');
wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"), false, '1.3.2', true);
wp_enqueue_script('jquery');
}
===================================================================
Настройка пагинации
the_posts_pagination( $args );
$args(массив)
Параметры по которым будет выводиться результат. По умолчанию:
$args = array(
'show_all' => False, // показаны все страницы участвующие в пагинации
'end_size' => 1, // количество страниц на концах
'mid_size' => 1, // количество страниц вокруг текущей
'prev_next' => True, // выводить ли боковые ссылки "предыдущая/следующая страница".
'prev_text' => __('« Previous'),
'next_text' => __('Next »'),
'add_args' => False,
'add_fragment' => '', // Текст который добавиться ко всем ссылкам.
'screen_reader_text' => __( 'Posts navigation' ),
);
$args передается в функцию paginate_links(), поэтому полный список параметров, смотрите в её описании.
===================================================================
/*
Template Name: Pressa
*/
- шаблон для страниц
/*Template Name Posts: technology*/ - шаблон для записей
===================================================================
if ( in_category( 'pachyderms' )) {
// действия, если пост относится к категории 'pachyderms'
} elseif ( in_category( array( 'Tropical Birds', 'small-mammals' ) )) {
// действия, если пост относится к одной из категорий 'Tropical Birds', 'small-mammals'
} else {
// если никакие из предыдущих условий не выполнены.
}
===================================================================
//вывести название категории с id=4
<?php echo get_cat_name(4);?>
===================================================================
<?
//Выводим все категории даже скрытые
$args = array(
'hide_empty'=> 0
);
wp_list_categories($args);
?>
===================================================================
//для работы плагинов
<?php wp_footer();?>
<?php wp_head(); ?>
===================================================================
//включаем меню в шаблоне
<?
if (function_exists('add_theme_support')) {
add_theme_support('menus');
}
?>
// Выводим нужное меню
<?php wp_nav_menu('menu=top_menu'); ?>
===================================================================
// Custom Field Suite работа с доп полями
http://customfieldsuite.com/projects/cfs/documentation/ - документация
<?php echo CFS()->get('first_name'); ?> - вывод необходимого поля
===================================================================
// данный код извлекает url картинки Вашей миниатюры Wordpress
$image_id = get_post_thumbnail_id();
$image_url = wp_get_attachment_image_src($image_id);
$image_url = $image_url[0];
===================================================================
//включаем поддержку миниатюр
add_theme_support( 'post-thumbnails', array( 'post' ) );
===================================================================
//Подключаем разные header
<? get_header('home');?>
+ создаем файл header-home.php - описываем новый хедер
===================================================================
// Подключаем скрипты в footer
<script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/bootstrap/js/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/bootstrap/js/bootstrap.min.js"></script>
<script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/bootstrap/js/script.js"></script>
===================================================================
<?
// Функция для вывода рубрик в зависимости от сатегории формируем функцию getListRub(### номер категории ###);
function getListRub($new_cat){
query_posts('cat='.$new_cat);
while (have_posts()) : the_post();
echo '<li><a href=" '.get_permalink().' "> ';
the_title();
echo '</a></li>';
endwhile;
wp_reset_query();
}
// вывод рубрик в зависимости от сатегории
?>
===================================================================
echo wp_trim_words( get_the_content(), 5, ' ...' ); // выведет 5 слов из контента
echo get_post_meta($post->ID,'small_text',true); // вывдедет инф из дополнительного поля