May 4, 2011

Меняем титл поста на автомате | CyberSEO Pro | Support Forums

Avatar

Lost password?
Advanced Search

— Forum Scope —




— Match —





— Forum Options —





Minimum search word length is 3 characters - maximum search word length is 84 characters

Related Topics sp_topicicon
Меняем титл поста на автомате
Topic Rating: 0 Topic Rating: 0 Topic Rating: 0 Topic Rating: 0 Topic Rating: 0 Topic Rating: 0 (0 votes) 
May 8, 2011
11:48 pm
Avatar
skill
Guest
Guests

Не могу понять, как сделать так, чтобы титл поста менялся на автомате на значение из файла по порядку.

Написал такой небольшой скрипт

$keys = file(“путь до файла с ключевиками”);
$max_keys = count($keys);
$file = “файл для записи текущей позиции в ключевиках”;
$i = file_get_contents($file);

$post[“post_title”] = $keys[$i];

$i = $i + 1;
if ($i >= $max_keys)
$i = 0;
$fp = fopen($file, “w+”);
fwrite($fp, “$i”);
fclose($fp);

Для запоминания текущей позиции ключевика используется файл. Проблема в том, что после добавления одного поста позиция пишется допустим 16, а не 1 как положено. Как будто при добавлении поста, php скрипт в плагине исполняется несколько раз.

May 9, 2011
11:29 am
Avatar
Admin
Forum Posts: 3102
Member Since:
July 2, 2009
sp_userofflinesmall Offline

На самом деле, так и есть. Пользовательский код исполняется до того, как данный конкретный пост из фида будет обработан скриптом CyberSEO Suite.

Предположим, Вы тянете какой-то фид, содержащий 3 поста. В первый раз, Ваш код исполняется ровно один раз, т.к. обрабатываемый пост новый и он сразу добавляется в базу. В следующий раз, Ваш код исполняется уже два раза, т.к. первый пост уже находится в базе блога (о чем Ваш код не знает), он пропускается скриптом CyberSEO Suite и из фида берется следующий пост (Ваш код срабатывает во второй раз). Ну и так далее.

Выйти из данной ситуации можно несколькими способами. Например, Вы можете проверить уникальность добавляемого поста перед тем, как обрабатывать его заголовок. Делается это следующим образом:

Login to see the code.

May 9, 2011
10:46 pm
Avatar
skill
Guest
Guests

Спасибо за решение, попробую.

May 11, 2011
4:46 pm
Avatar
skill
Guest
Guests

Не получается. Когда пытаюсь пуллнуть фид, то появляется надпись “0 posts were added”.

May 11, 2011
5:12 pm
Avatar
Admin
Forum Posts: 3102
Member Since:
July 2, 2009
sp_userofflinesmall Offline

Значит делаете что-то не так. Покажите свой код целиком. Кстати, вы уверены что в фиде остались недобавленные посты? Имейте в виду, что посты, лежащие в “мусорном ведре” (если таковые имеются) так же находятся в базе WP и их необходимо предварительно удалить.

Опция настроек фида “Check for duplicate posts by” должна быть выставлена в “GUID only”.

Кстати, убедитесь в том, что все посты в фиде, который вы тяните, имеют уникальные GUID-ы, как того требует спецификация RSS.

May 12, 2011
10:16 pm
Avatar
skill
Guest
Guests

Вот rss Login to see this link.

Код:

Login to see the code.

May 12, 2011
11:09 pm
Avatar
Admin
Forum Posts: 3102
Member Since:
July 2, 2009
sp_userofflinesmall Offline

Только что проверил этот код на тестовом блоге. Все работает правильно.

Попробуйте такой вариант тестового кода:

Login to see the code.

May 13, 2011
6:06 am
Avatar
skill
Guest
Guests

Вот добавленные посты я не удалял, потому что часть уже проиндексирована гуглом. Обязателльно нужно удалять все посты полностью для исполнения этого скрипта, почему он не может просто продолжать тянуть посты?

May 13, 2011
10:25 am
Avatar
Admin
Forum Posts: 3102
Member Since:
July 2, 2009
sp_userofflinesmall Offline

Почему не может? Если в RSS фиде остались недобавленные посты, то он обязательно их добавит.

Forum Timezone: Europe/Moscow

Most Users Ever Online: 105

Currently Online:
6 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

ninja321: 81

Freedom: 61

B8europe: 54

saviulisse67: 45

adultdenim: 44

allgoodies: 38

Member Stats:

Guest Posters: 350

Members: 1928

Moderators: 0

Admins: 1

Forum Stats:

Groups: 1

Forums: 2

Topics: 1331

Posts: 6637

Administrators: CyberSEO: 3102