2012-05-19 2 views
1

В основном, у меня есть файл cookie с сохранением категории slug, используя эти данные. Я хочу запросить базу данных и вернуть идентификатор категории.Wordpress: Используя категорию slug, получите идентификатор категории, используя mysql-запрос

Я новичок в mysql, и это похоже на расширенный запрос, который может потребоваться для использования соединений, любая помощь или руководство будут высоко оценены.

Спасибо!

Ссылка: http://codex.wordpress.org/File:WP3.0-ERD.png

ответ

1
SELECT wp_term_taxonomy.term_taxonomy_id 
FROM wp_terms 
    JOIN wp_term_taxonomy USING (term_id) 
WHERE wp_term_taxonomy.taxonomy = 'category' 
    AND wp_terms.slug = ? 

Узнайте о SQL joins.

+0

Спасибо вам большое! –

3

Заканчивать пример на странице get_category_by_slug:

<?php 
    $idObj = get_category_by_slug('slug'); 
    $id = $idObj->term_id; 
?> 

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

EDIT: Основываясь на ваш комментарий, он бы, вероятно, самый простой для вас, чтобы добавить следующее к любой WordPress странице:

define('SAVEQUERIES', true); 
global $wpdb; 
print_r($wpdb->queries); 

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

+0

Это должно быть сделано с помощью MySQL, как это в файле, отделен от WordPress, если у вас не было пути вокруг этого? И из-за настроения я не могу. –

+0

Проверьте мое редактирование выше, это должно помочь вам с тем, что вы хотите сделать. – chrisn

0

Ну, имя и пробкового хранятся на том же столе, так что-то вроде этого следует сделать это (только MySQL, не WP Query не участвует):

SELECT term_id as id FROM wp_terms WHERE slug = 'slug-here'; 
+0

Нет, что не работает, я также вывел всю таблицу, чтобы посмотреть, а категории не указаны? –

0

Вы можете использовать WordPress родной функции get_term_by Ex:

$term = get_term_by('slug',$SLUG_FROM_COOKIE,'category'); 

и теперь $term термин объект, так что вы можете использовать $term->ID

Смежные вопросы