[Помогите] Как получить ID поста по тайтлу?

Тема в разделе "Wordpress", создана пользователем alcoholic, 22 янв 2009.

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

    alcoholic Создатель

    Регистр.:
    3 фев 2007
    Сообщения:
    34
    Симпатии:
    2
    Как получить ID поста зная его тайтл средствами WP ?
     
  2. bravilor

    bravilor

    Регистр.:
    25 июл 2007
    Сообщения:
    436
    Симпатии:
    152

    Вложения:

  3. alcoholic

    alcoholic Создатель

    Регистр.:
    3 фев 2007
    Сообщения:
    34
    Симпатии:
    2
    Это не то, я наверное не правильно задал вопрос.
    Вобщем мне нужен PHP код на движке вордпресса(функция грубо говоря), которой передаешь тайтл поста, а она возвращает его ID, если находит такой пост.
     
  4. zetar

    zetar

    Регистр.:
    18 май 2007
    Сообщения:
    497
    Симпатии:
    348
    скажи за чем это нужно может проще можно решить задачу
    и еще версия wp какая ?
    тк структура баз у версий отличается
     
  5. itex

    itex

    Регистр.:
    15 ноя 2007
    Сообщения:
    274
    Симпатии:
    64
    url_to_postid() возвращает ид поста из урла, пройдись по rewrite.php и найди что она использует, обычно слуг титла в пермалинках используется, такчто там должно быть, сам не смог посмотреть, нет под рукой сорцов ВП.
     
  6. alcoholic

    alcoholic Создатель

    Регистр.:
    3 фев 2007
    Сообщения:
    34
    Симпатии:
    2
    Нужно это вот зачем:
    Пишу граббер для wordpress и мне надо проверять добавляемые посты на дубли, а то будут добавляться по 10 штук одинаковых.

    версия 2.7
     
  7. zetar

    zetar

    Регистр.:
    18 май 2007
    Сообщения:
    497
    Симпатии:
    348
    добавлять через xml-rpc ??
     
  8. joefast

    joefast

    Заблокирован
    Регистр.:
    6 ноя 2007
    Сообщения:
    464
    Симпатии:
    74
    Попробуйте использовать get_posts http://codex.wordpress.org/Template_Tags/get_posts
    Получаем список постов, проверяем тайтл каждого из них.

    Проще только прямым sql запросом в базу
     
    alcoholic нравится это.
  9. alcoholic

    alcoholic Создатель

    Регистр.:
    3 фев 2007
    Сообщения:
    34
    Симпатии:
    2
    Всё таки можно сделать по человечески, используя ту же get_posts с параметром для поиска s.

    чтобы в xmlrpc заработала функция поиска нужно дописать вот такую функцию в xmlrpc.php, передаем title получаем ID поста или 0 в случае неудачи:

    PHP:
    /**
         * Retrieve the post ID by title or return 0
         *
         *
         * @param array $args Method parameters.
         * @return array
         */
        
    function mw_getPostByTitle($args) {

            
    $this->escape($args);

            
    $blog_ID     = (int) $args[0];
            
    $user_login  $args[1];
            
    $user_pass   $args[2];
            
    $title   $args[3];

            if (!
    $this->login_pass_ok($user_login$user_pass)) {
                return 
    $this->error;
            }

            
    set_current_user0$user_login );

            
    do_action('xmlrpc_call''metaWeblog.getPostByTitle');

            
    $response_struct = array();

            if(
    $arr get_posts('s='.$title.'&showposts=1'))
                
    $response_struct['found'] = (int)$arr[0]->ID;
            else
                
    $response_struct['found'] = 0;

            return 
    $response_struct;
        }
    а так же прописать aliasы в
    PHP:
    wp_xmlrpc_server() {
            
    $this->methods = array(
    PHP:
    'metaWeblog.getPostByTitle' => 'this:mw_getPostByTitle',
    и
    PHP:
    'wp.getPostByTitle'        => 'this:mw_getPostByTitle',        // Alias
    аналогично для остальных API.

    разумеется title надо передавать в UTF-8.
     
    latteo нравится это.
Статус темы:
Закрыта.