fantazer
2/2/2015 - 8:09 PM

Вывести заголовки рубрик

Вывести заголовки рубрик

//Массовое переименование
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); // вывдедет инф из дополнительного поля