• DONATE to NULLED!
    Вы можете помочь Форуму и команде, поддержать финансово.
    starwanderer - модератор этого раздела будет Вам благодарен!

Помощь Как получить ID поста по тайтлу?

Статус
В этой теме нельзя размещать новые ответы.

alcoholic

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

скажи за чем это нужно может проще можно решить задачу
и еще версия wp какая ?
тк структура баз у версий отличается
 
url_to_postid() возвращает ид поста из урла, пройдись по rewrite.php и найди что она использует, обычно слуг титла в пермалинках используется, такчто там должно быть, сам не смог посмотреть, нет под рукой сорцов ВП.
 
Нужно это вот зачем:
Пишу граббер для wordpress и мне надо проверять добавляемые посты на дубли, а то будут добавляться по 10 штук одинаковых.

версия 2.7
 
Нужно это вот зачем:
Пишу граббер для wordpress и мне надо проверять добавляемые посты на дубли, а то будут добавляться по 10 штук одинаковых.

версия 2.7

добавлять через xml-rpc ??
 
  • Заблокирован
  • #8
Попробуйте использовать get_posts
Получаем список постов, проверяем тайтл каждого из них.

Проще только прямым sql запросом в базу
 
Всё таки можно сделать по человечески, используя ту же 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_user( 0, $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.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху