Как вывести description в теги wordpress


Опубликовано в: php
Автор: Genius Дата: 20 Сен 16 - 0 комментариев

За вывод описания тега в вордпресс отвечает функция

1
<?php
1
echo
1
tag_description();?>

Установка Title и мета тегов без плагина

  1. Функция вывода тега Title – заголовок страницы.
  2. Функция вывода метатега Description – описание страницы.
  3. Функция вывода метатега Keywords – ключевые слова страницы.
  4. Функция вывода метатега Robots – отвечает за индексирование страницы. Не путайте с файлом robots.txt. Суть у них практически одинаковая, но возможности и реализация разные.

/** мета заголовок (title):
— Первый параметр функции это разделитель, второй название блога (если не указать берется из Настроек).
— Для меток и категорий указывается в настройках в описании (в настройках, по аналогии с пунком 6 Platinum SEO Pack, см. выше) так: [title=Заголовок]
— Для страниц или постов, если вы хотите чтобы заголовок страницы отличался от заголовка поста, то создайте произвольное поле title и впишите туда свое название
————————————- */

function kama_meta_title ($sep=» | «,$bloginfo_name=»){
global $wp_query,$post;
if (!$bloginfo_name) $bloginfo_name = get_bloginfo(‘name’);
$wp_title = wp_title($sep, 0, ‘right’);

if (is_category() || is_tag()){
$desc = $wp_query->queried_object->description;
if ($desc) preg_match (‘!\[title=(.*)\]!iU’,$desc,$match);
$out = $match[1] ? $match[1].$sep : ((is_tag())?»Метка:»:»Категория:»).» $wp_title»;
}
elseif (is_singular()) $out = ($free_title = get_post_meta($post->ID, «title», true)) ? $free_title.$sep : $wp_title;
elseif (is_author()) $out = «Статьи автора: $wp_title»;
elseif (is_day() || is_month() || is_year()) $out = «Архив за: $wp_title»;
elseif (is_search()) $out = ‘Результаты поиска по запросу: ‘. strip_tags($_GET[‘s’]) . $sep;
elseif (is_404()) $out = «Ошибка 404 — страница не существует».$sep.$wp_title;

$out = trim($out.$bloginfo_name);
if ($paged = get_query_var(‘paged’)) $out = «$out (страница $paged)»;
return print $out;
}

 

/** мета описание (description):
— Для главной страницы описание указывается в функции, так: kama_meta_description (‘Здесь описание блога’);
— Для страниц меток и категорий указывается в описании (в настройках, по аналогии с пунком 6 Platinum SEO Pack, см. выше), так: [description=текст, описание]
— У постов сначала проверяется, произвольное поле description, если оно есть описание берется оттуда, потом проверяется поле «цитата», если цитаты нет, то описание берется как начальная часть контента.
— вторым параметром в функции указывается колличество символов для описания: kama_meta_description (‘Описание для главной страницы’,200);
————————————- */

function kama_meta_description ($home_description=»,$maxchar=200){
global $wp_query,$post;
if (is_singular()){
if ( $descript = get_post_meta($post->ID, «description», true) )
$out = $descript;
elseif ($post->post_excerpt!=»)
$out = trim(strip_tags($post->post_excerpt));
else
$out = trim(strip_tags($post->post_content));

$char = iconv_strlen( $out, ‘utf-8’ );
if ( $char > $maxchar ) {
$out = iconv_substr( $out, 0, $maxchar, ‘utf-8’ );
$words = split(‘ ‘, $out ); $maxwords = count($words) — 1; //убираем последнее слово, ибо оно в 99% случаев неполное
$out = join(‘ ‘, array_slice($words, 0, $maxwords)).’ …’;
}
}
elseif (is_category() || is_tag()){
$desc = $wp_query->queried_object->description;
if ($desc) preg_match (‘!\[description=(.*)\]!iU’,$desc,$match);
$out = $match[1]?$match[1]:»;
}
elseif (is_home()) $out=$home_description;
if ($out){
$out = str_replace( array(«\n»,»\r»), ‘ ‘, strip_tags($out) );
$out = preg_replace(«@\[.*?\]@», », $out); //удаляем шоткоды
return print «<meta name=’description’ content=’$out’ />\n»;
}
else return false;
}

/** метатег keywords:
— Для главной страницы, ключевые слова указываются в функции так: kama_meta_keywords (‘слово1, слово2, слово3’);
— Также можно вписать ключевые слова во второй параметр, они будут отображаться (добавляться) на всех страницах сайта: kama_meta_keywords (‘<ключевики для главной>’,'<сквозные ключевики>’);
— Чтобы задать свои keywords для записи, создайте произвольное поле keywords и впишите в значения необходимые ключевые слова. Если такого поля у записи нет, то ключевые слова генерируются из меток и названия категории(й).
— Для страниц меток и категорий ключевые слова указываетются в описании (в настройках, по аналогии с пунком 6 Platinum SEO Pack, см. выше) так: [keywords=слово1, слово2, слово3]
————————————- */

function kama_meta_keywords ($home_keywords=»,$def_keywords=»){
global $wp_query,$post;
if ( is_single() && !$out=get_post_meta($post->ID,’keywords’,true) ){
$out = »;
$res = wp_get_object_terms( $post->ID, array(‘post_tag’,’category’), array(‘orderby’ => ‘none’) ); // получаем категории и метки
if ($res) foreach ($res as $tag) $out .= » {$tag->name}»;
$out = str_replace(‘ ‘,’, ‘,trim($out));
$out = «$out $def_keywords»;
}
elseif (is_category() || is_tag()){
$desc = $wp_query->queried_object->description;
if ($desc) preg_match (‘!\[keywords=(.*)\]!iU’,$desc,$match);
$out = $match[1]?$match[1]:»;
$out = «$out $def_keywords»;
}
elseif (is_home()){
$out = $home_keywords;
}
if ($out) return print «<meta name=’keywords’ content=’$out’ />\n»;
return false;
}

/** метатег robots:
— Чтобы задать свои атрибуты метатега robots ДЛЯ ЗАПИСИ или СТРАНИЦЫ, создайте произвольное поле robotsmeta со значением необходимых атрибутов (например, чтобы закрыть от индексации страницу или пост нужно создать произвольное поле robotsmeta со значением noindex,nofollow)
— По умолчанию не индексируются страницы поиска и архив за день, страница входа на сайт и регистрации, а так же RSS фиды, чтобы разрешить или запретить индексацию групп/типов (страницы меток, авторов и т.п.) раскомментируйте (уберите # ниже в коде).
—————————————— */

function kama_meta_robots ($out = «index,follow»){
global $post;
$eURL = $_SERVER[‘REQUEST_URI’];
if ( // раскомментируйте нужные строки ниже — раскомментировано значит закрыто от индексации
#is_category() || // категории
#is_tag() || // метки
#is_author() || // архив автора
#is_year() || // архив за год
#is_month() || // архив за месяц
is_day() || // архив за день
strpos($eURL, ‘/wp-login.php’) !== false || // страница входа на сайт
strpos($eURL, ‘/wp-register.php’) !== false || // страница регистрации
#strpos($eURL, ‘/comment-page’) !== false || // страницы комментариев
is_search() || // страница поиска
is_feed() // rss фиды
) $out = «noindex,nofollow»;

if (is_singular() && $robots = get_post_meta($post->ID,’robotsmeta’,true))
$out = $robots;
return print «<meta name=’robots’ content=’$out’ />\n»;
}

код переадресации с сайта на сайт


Опубликовано в: Полезное
Автор: Genius Дата: 21 Апр 16 - 0 комментариев

Переадресация страницы с помощью . htaccess

Теперь рассмотрим самый простой редерикт (перенаправление) с помощью файла htaccess. Кстати, если вы не в курсе, что такое htaccess, тогда советую прочитать об этом тут.
Итак, простейший код переадресации через файл htaccess

1
Redirect 301 / http://ваш сайт.ru/страница.html
Или вот так:

1
Redirect 301 / http://ваш сайт.ru/
можно и так:

1
2
RewriteCond %{REQUEST_URI} ^/название страницы.html$
RewriteRule ^.*$ http://адрес сайта для переадресации/? [R=301,L]

Чтобы вывести популярные записи по количеству просмотров, нам потребуется создать счетчик просмотров. Для этот открываем для редактирования файл functions.php и в самый низ перед знаком ?>вставляем следующий код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function mayakPostViews($post_ID) {
    $count_key = 'post_views_count';
    $count = get_post_meta($post_ID, $count_key, true);

    if($count == ''){
        $count = 0;
delete_post_meta($post_ID, $count_key);
add_post_meta($post_ID, $count_key, '0');
        return $count . ' Просмотр';
    }else{
        $count++;
        update_post_meta($post_ID, $count_key, $count);
        if($count == '1'){
        return $count . ' Просмотр';
        }
        else {
        return $count . ' Просмотров';
        }
    }
}

Теперь нам надо вызвать счетчик в нужном месте. Для этого в файл single.php ищем что-то похожее на такую строчку:

1
<code class="plain">&lt;?php the_date(); ?&gt; автор: &lt;?php the_author() ?&gt;  &lt;?php edit_post_link(__(</code><code class="string">'Edit This'</code><code class="plain">)); ?&gt;</code>

В самый конец этой строки добавляем код вызова счетчика:

1
<code class="plain">&lt;?php </code><code class="keyword">if</code><code class="plain">(function_exists(</code><code class="string">'mayakPostViews'</code><code class="plain">)) { </code><code class="functions">echo</code> <code class="plain">mayakPostViews(get_the_ID()); }?&gt;</code>

Это еще не все! Теперь нам надо вывести популярные записи в сайдбаре. Открываем файл sidebar.php и в нужное место вставляем такой код:

1
&lt;div class="popul"&gt; &lt;h3&gt;Популярные статьи&lt;/h3&gt; &lt;table&gt; &lt;?php $args = array( 'posts_per_page' =&gt; 5, 'meta_key' =&gt; 'post_views_count', 'orderby' =&gt; 'meta_value_num', 'order' =&gt; 'DESC' ); query_posts($args); while ( have_posts() ) : the_post(); ?&gt; &lt;tr&gt;&lt;td&gt;&lt;a onclick="return !window.open(this.href)" href="&lt;?php the_permalink() ?&gt;"&gt;&lt;?php the_post_thumbnail('thumbnail'); ?&gt;&lt;/a&gt;&lt;a href="&lt;?php the_permalink() ?&gt;"&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;?php endwhile; wp_reset_query(); ?&gt; &lt;/table&gt; &lt;/div&gt;

Как убрать / скрыть версию WordPress в meta generator ?


Опубликовано в: php
Автор: Genius Дата: 21 Янв 16 - 0 комментариев

Привет!

В сегодняшней заметке хочу поделиться решением популярной и «надоевшей» проблемы. Конечно, это не совсем проблема, это скорее не всегда желанная возможность WordPress-а, которую чаще хочется отключить.

Итак, допустим, вы открыли исходный код одной из страниц вашего сайта или прочли где-то, что для безопасности и защиты от некоторой части спама, нужно убрать вот этот, автоматически выводимый на каждой странице вашего сайта на WP, непонятный код из 2 строк:

 

Узнаете? Отлично! Тогда, перед тем, как его убрать, я кратко объясню вам, что это за строчки. Или же, сразу переходите к решению в конце статьи.

Первая строка необходима для того, чтобы вы могли публиковать материалы на ваш блог с помощью программы Windows Live Writer (о которой мало кто вообще знает), то есть, чтобы эта программа могла связываться с вашим блогом на WordPress, ей нужен вот такой указатель.

Ну а вторая строка, насколько я знаю, носит просто информационный характер и показывает текущую версию установленной на вашем сайте версии Вордпресс. Но данная информация не должна быть доступной каждому. Хотя бы по той причине, что сейчас интернет регулярно прочесывают разнообразные боты, и не только поисковые. Например, некоторые из них ищут сайты, на которых WordPress нерегулярно обновляется или вообще завис где-то на одной из старых версий. А суть обновлений не только в добавляемых возможностях, но также и в устранении ошибок и дыр в безопасности, которые отыскивает сообщество WordPress. А информация о вашей, возможно, устаревшей версии может привлечь внимание к вашему сайту, особенно если у вас хорошая посещаемость.

Итак, решение:

Вам нужно поместить следующий файл в файл functions.php вашей темы. Это можно сделать через админку — меню слева «Внешний вид» — «Редактор» — справа в списке «Функции темы» (functions.php), и в этот файл между тэгами<?php и ?> вставить следующий код:

// убрать непонятные ссылки для Windows Live Writer
remove_action(‘wp_head’, ‘wlwmanifest_link’);
remove_action(‘wp_head’, ‘rsd_link’);

// отключить вывод мета тэга «generator»
remove_action(‘wp_head’, ‘wp_generator’);

// скрыть версию WordPress
function gb_hide_wp_ver()
{
return »;
}
add_filter(‘the_generator’,’gb_hide_wp_ver’);

Стр. 1 из 1112..4..Ранее »