X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Keywordы для постов на WP
MusTank
MusTank
Topic Starter сообщение 14.7.2012, 20:52; Ответить: MusTank
Сообщение #1


Приветствую. Ищу решение такого задания:
Автоматически проставить во всех, уже созданных, постах кейворды по маске. Например: %title% отзывы, %title обзор и т.д.
Руками делать - не выход, т.к. постов не мало.
Перебрал несколько СЕО-плагинов - такой функции так и не нашёл sad.gif

Может кто сталкивался или догадывается, как можно выйти из ситуации?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
serkaz
serkaz
сообщение 14.7.2012, 21:05; Ответить: serkaz
Сообщение #2


Я правильно понял, что если запись "Вася Пупкин", то ей надо добавить meta keywords "Вася Пупкин обзор"?


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MusTank
MusTank
Topic Starter сообщение 14.7.2012, 21:07; Ответить: MusTank
Сообщение #3


(serkaz @ 14.7.2012, 19:05) *
Я правильно понял, что если запись "Вася Пупкин", то ей надо добавить meta keywords "Вася Пупкин обзор"?

Да, всё правильно.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kronos
kronos
сообщение 14.7.2012, 21:09; Ответить: kronos
Сообщение #4


Думаю проще будет сделать экспорт таблицы, и пошаманить с excel или notepad++ (через csv)


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


Поблагодарили: (2)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
serkaz
serkaz
сообщение 14.7.2012, 22:44; Ответить: serkaz
Сообщение #5


А SEO плагин какой стоит?

Создаёте файл, например, vasyapupkin.php.

Пишете в нём:
<?
include('wp-blog-header.php');

$keywords = "здесь через запятую ваши ключевики";
$keywords = explode(",",$keywords);

$posts = get_posts('&numberposts=-1');

foreach($posts as $post){
    setup_postdata($post);
    $title = get_the_title();
    $current_keywords = get_post_meta($post->ID,"keywords",true);
    $keys = array();
    foreach($keywords as $key){
        $keys[] = $title.' '.$key;
    }
    $keys = implode(",",$keys);
    if(!empty($current_keywords)){
        update_post_meta($post->ID, 'keywords', $current_keywords.', '.$keys);
    } else {
        add_post_meta($post->ID, 'keywords', $keys);
    }
    unset($keys);
}
wp_reset_postdata();
?>


Кладёте в корень сайта.

Запускаете - адрессайта.ру/vasyapupkin.php

Что делает данная штука? Для абсолютно всех постов, проверяется есть ли уже keywords у поста, если есть, то к текущим ключевикам, добавляет нужные ключевики, если у поста кейвордс не заполнены, то просто добавляет их.

В данном случае скрипт проставляет кейвордсы для всех записей при желании это можно сделать, только для постов из определённых рубрик.

Работу скрипта не гарантирую, в боевых условиях не проверял, если будете использовать - сделайте дамп БД.

Сообщение отредактировал serkaz - 14.7.2012, 22:49


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


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MusTank
MusTank
Topic Starter сообщение 15.7.2012, 0:45; Ответить: MusTank
Сообщение #6


(kronos @ 14.7.2012, 19:09) *
Думаю проще будет сделать экспорт таблицы, и пошаманить с excel или notepad++ (через csv)

БД слишком грязное, т.к. используется масса дополнений, а кейворды указаны в рядах плагина "All in One SEO Pack" по нумерациям постов, без титлов и чпу.
Сутками чистить и разгребать придётся wacko.gif

(serkaz @ 14.7.2012, 20:44) *
А SEO плагин какой стоит?

Создаёте файл, например, vasyapupkin.php.

Пишете в нём:
<?
include('wp-blog-header.php');

$keywords = "здесь через запятую ваши ключевики";
$keywords = explode(",",$keywords);

$posts = get_posts('&numberposts=-1');

foreach($posts as $post){
    setup_postdata($post);
    $title = get_the_title();
    $current_keywords = get_post_meta($post->ID,"keywords",true);
    $keys = array();
    foreach($keywords as $key){
        $keys[] = $title.' '.$key;
    }
    $keys = implode(",",$keys);
    if(!empty($current_keywords)){
        update_post_meta($post->ID, 'keywords', $current_keywords.', '.$keys);
    } else {
        add_post_meta($post->ID, 'keywords', $keys);
    }
    unset($keys);
}
wp_reset_postdata();
?>


Кладёте в корень сайта.

Запускаете - адрессайта.ру/vasyapupkin.php

Что делает данная штука? Для абсолютно всех постов, проверяется есть ли уже keywords у поста, если есть, то к текущим ключевикам, добавляет нужные ключевики, если у поста кейвордс не заполнены, то просто добавляет их.

В данном случае скрипт проставляет кейвордсы для всех записей при желании это можно сделать, только для постов из определённых рубрик.

Работу скрипта не гарантирую, в боевых условиях не проверял, если будете использовать - сделайте дамп БД.


Сейчас стоит "All in One SEO Pack".
Спасибо, но он, к сожалению, почему-то возвращает только внутреннюю ошибку сервера.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
serkaz
serkaz
сообщение 15.7.2012, 12:37; Ответить: serkaz
Сообщение #7


<?
include('wp-blog-header.php');

$keywords = "обзор, отзыв";
$keywords = explode(", ",$keywords);

$posts = get_posts('&numberposts=-1&post_status=publish,draft');

foreach($posts as $post){
    setup_postdata($post);
    $title = get_the_title();
    $current_keywords = get_post_meta($post->ID,"_aioseop_keywords",true);
    $keys = array();
    foreach($keywords as $key){
        $keys[] = $title.' '.$key;
    }
    $keys = implode(", ",$keys);
    if(!empty($current_keywords)){
        update_post_meta($post->ID, '_aioseop_keywords', $current_keywords.', '.$keys);
    } else {
        add_post_meta($post->ID, '_aioseop_keywords', ''.$keys.'', true);
    }
    unset($keys);
}
wp_reset_postdata();
?>


Обновил код для All in one SEO pack. Проверил - работает. Если будет выдавать ошибку, то это скорее всего из-за большого количества записей. Сколько у вас записей?

Проверьте кодировку файл. Файл должен быть в кодировке utf-8 без ВОМ.

Сообщение отредактировал serkaz - 15.7.2012, 12:25
Прикрепленные файлы
Прикрепленный файл  vasyapupkin.zip ( 440 байт ) Кол-во скачиваний: 24
 


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


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MusTank
MusTank
Topic Starter сообщение 15.7.2012, 13:42; Ответить: MusTank
Сообщение #8


(serkaz @ 15.7.2012, 10:37) *
<?
include('wp-blog-header.php');

$keywords = "обзор, отзыв";
$keywords = explode(", ",$keywords);

$posts = get_posts('&numberposts=-1&post_status=publish,draft');

foreach($posts as $post){
    setup_postdata($post);
    $title = get_the_title();
    $current_keywords = get_post_meta($post->ID,"_aioseop_keywords",true);
    $keys = array();
    foreach($keywords as $key){
        $keys[] = $title.' '.$key;
    }
    $keys = implode(", ",$keys);
    if(!empty($current_keywords)){
        update_post_meta($post->ID, '_aioseop_keywords', $current_keywords.', '.$keys);
    } else {
        add_post_meta($post->ID, '_aioseop_keywords', ''.$keys.'', true);
    }
    unset($keys);
}
wp_reset_postdata();
?>


Обновил код для All in one SEO pack. Проверил - работает. Если будет выдавать ошибку, то это скорее всего из-за большого количества записей. Сколько у вас записей?

Проверьте кодировку файл. Файл должен быть в кодировке utf-8 без ВОМ.


Большое спасибо!
Обрабатывает 3к постов за 2-3 секунды.
Работает именно так, как нужно, но в некоторые записи, в которых уже были такие ключи, дописывает их ещё раз.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
serkaz
serkaz
сообщение 15.7.2012, 14:02; Ответить: serkaz
Сообщение #9


но в некоторые записи, в которых уже были такие ключи, дописывает их ещё раз.


нужно дописывать условия, если нужно, можно допилить.

<?
include('wp-blog-header.php');

$posts = get_posts('&numberposts=-1&post_status=publish,draft');

foreach($posts as $post){
    setup_postdata($post);
    $current_keywords = get_post_meta($post->ID,"_aioseop_keywords",true);
    if(!empty($current_keywords)){
        $current_keywords = str_replace(", ",",",$current_keywords);
        $current_keywords = explode(",",$current_keywords);
        $current_keywords = array_unique($current_keywords);
        $current_keywords = implode(", ",$current_keywords);
        update_post_meta($post->ID, '_aioseop_keywords', $current_keywords);
    }
    unset($current_keywords);
}
wp_reset_postdata();
?>


Вот код. Удалит повторяющиеся keywords. Новый файл создайте и запустите.

Сообщение отредактировал serkaz - 15.7.2012, 14:03


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


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MusTank
MusTank
Topic Starter сообщение 15.7.2012, 18:12; Ответить: MusTank
Сообщение #10


(serkaz @ 15.7.2012, 12:02) *
нужно дописывать условия, если нужно, можно допилить.

<?
include('wp-blog-header.php');

$posts = get_posts('&numberposts=-1&post_status=publish,draft');

foreach($posts as $post){
    setup_postdata($post);
    $current_keywords = get_post_meta($post->ID,"_aioseop_keywords",true);
    if(!empty($current_keywords)){
        $current_keywords = str_replace(", ",",",$current_keywords);
        $current_keywords = explode(",",$current_keywords);
        $current_keywords = array_unique($current_keywords);
        $current_keywords = implode(", ",$current_keywords);
        update_post_meta($post->ID, '_aioseop_keywords', $current_keywords);
    }
    unset($current_keywords);
}
wp_reset_postdata();
?>


Вот код. Удалит повторяющиеся keywords. Новый файл создайте и запустите.


Ещё раз спасибо, всё сработало идеально happy.gif

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) ✅ sms.chekons.com - ⭐ Сервис для получения SMS на реальные номера USA "Non-VoIP, безлим SMS, API" ⭐
Сервис для получения SMS на реальные номера USA
13 Chekon 4078 18.4.2024, 11:48
автор: Chekon
Открытая тема (нет новых ответов) Rebex.io – Ваша инновационная платформа для обмена криптовалюты!
1 Rebex 689 17.4.2024, 11:50
автор: Rebex
Открытая тема (нет новых ответов) Какой % отказов нормален для сайта?
11 Aloof 2822 16.4.2024, 12:48
автор: diviner99
Горячая тема (нет новых ответов) Betatransfer.net - прием платежей для HIGH RISK проектов, интернет эквайринг и мерчант онлайн оплат
54 arendator 34838 15.4.2024, 15:16
автор: arendator
Горячая тема (нет новых ответов) ⭕Антидетект браузер AdsPower для эффективной работы с мультиаккаунтами!
83 AdsPower 24426 14.4.2024, 22:52
автор: AdsPower


 



RSS Текстовая версия Сейчас: 20.4.2024, 7:33
Дизайн