[Помогите] Дата в вордпресс

Тема в разделе "Wordpress", создана пользователем saschok, 27 авг 2009.

Статус темы:
Закрыта.
Модераторы: Sorcus
  1. saschok

    saschok Постоялец

    Регистр.:
    17 фев 2009
    Сообщения:
    94
    Симпатии:
    11
    Здраствуйте! При импорте в блог через rss, вордпресс выдает везде одинаковую дату 1 января 1970, с чем это связано и как это можно исправить
     
  2. whitewolff

    whitewolff Лимонадный Джо :)

    Регистр.:
    29 май 2007
    Сообщения:
    168
    Симпатии:
    33
    1 января 1970 00:00:00 - это таймштамп = 0;
    проверь в базе данных в таблице (префикс)posts значения поля с типом datetime. если туда не пишется дата, то остаются дефолтные нули, следствием чего и является то что у тебя происходит. проверь RSS-ник на наличие даты, на её формат. закинь сюда код одного поста с RSS-ника
     
  3. saschok

    saschok Постоялец

    Регистр.:
    17 фев 2009
    Сообщения:
    94
    Симпатии:
    11
    в базе данных указана дата 1969-12-31 23:59:59 на всех постах
    вот пример xml файла
    Код:
    <?xml version=”1.0″ encoding=”utf-8″?>
    <rss version=”2.0″
    xmlns:content=”http://purl.org/rss/1.0/modules/content/”
    xmlns:wfw=”http://wellformedweb.org/CommentAPI/”
    xmlns:dc=”http://purl.org/dc/elements/1.1/”
    xmlns:atom=”http://www.w3.org/2005/Atom” >
    <channel>
    <generator>http://wordpress.org/?v=2.7</generator>
    <language>ru</language>
    <item>
    <title>название поста</title>
    <pubDate>March 08, 2009, 22:10</pubDate>  
    <content:encoded><![CDATA[ 
    тута текст
      ]]></content:encoded>
    </item>
    </channel>
    </rss>
     
  4. whitewolff

    whitewolff Лимонадный Джо :)

    Регистр.:
    29 май 2007
    Сообщения:
    168
    Симпатии:
    33
    файл wp-admin/import/rss.php , строки 63-73
    PHP:
    if ($post_date_gmt) {
     
    $post_date_gmt strtotime($post_date_gmt[1]);
    } else {
    // if we don't already have something from pubDate
     
    preg_match('|<dc:date>(.*?)</dc:date>|is'$post$post_date_gmt);
     
    $post_date_gmt preg_replace('|([-+])([0-9]+):([0-9]+)$|''\1\2\3'$post_date_gmt[1]);
     
    $post_date_gmt str_replace('T'' '$post_date_gmt);
     
    $post_date_gmt strtotime($post_date_gmt);
    }
    $post_date_gmt gmdate('Y-m-d H:i:s'$post_date_gmt);
    $post_date get_date_from_gmt$post_date_gmt );
    явно не нравится ему формат даты, из-за этого strtotime возвращает результат -1, а потом после ветвления gmdate(-1) возвращает ту дату что у тя получилась. т.е. 0 таймштампа без 1 секунды
     
  5. saschok

    saschok Постоялец

    Регистр.:
    17 фев 2009
    Сообщения:
    94
    Симпатии:
    11
    Да я вообщем софт на вдске сменил, и все стало нормально, правда пришлось со блогами распрощаться, да и пофиг все раввно они с кривой датой получились, а софт был на вдс(firstvds) ispmanager, я поменял на soft2006 и все стало нормально работать
     
  6. Гад

    Гад Постоялец

    Регистр.:
    11 июн 2007
    Сообщения:
    66
    Симпатии:
    3
    Немного не по теме. Но чтоб не создавать новую..

    Есть ли плагин или другое бесплатное решение для WP, изменяющее дату постов случайным образом?

    Дело в том, что сконвертил базу из другого движка, однако дата постов при этом стала сегодняшней :) Не хотелось бы вручную редактировать несколько сотен записей.
     
  7. Dmytr0

    Dmytr0

    Регистр.:
    11 авг 2008
    Сообщения:
    242
    Симпатии:
    34
    Гад, держи скрипт, как раз то что тебе нужно.
     

    Вложения:

    • tc.rar
      Размер файла:
      4,7 КБ
      Просмотров:
      2
    Гад нравится это.
Статус темы:
Закрыта.