1

基本的に、カテゴリスラッグが保存されたCookieがあります。このデータを使用して、データベースにクエリを実行し、カテゴリのIDを返します。

私はmysqlを初めて使用しますが、これは結合を使用する必要がある高度なクエリのようです。ヘルプやガイダンスをいただければ幸いです。

ありがとうございました!

参照: http ://codex.wordpress.org/File:WP3.0-ERD.png

4

4 に答える 4

3

get_category_by_slugのページの例を確認してください。

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

さらに重要なことに、すでにスラッグを保存している場合は、毎回IDを照会する必要がないように、IDを一緒に保存してみませんか?

編集:あなたのコメントに基づいて、WordPressページに以下を追加するのがおそらく最も簡単でしょう:

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

次に、この投稿から元のコードを実行します。これにより、WordPressがカテゴリと関連データを取得するために実行したクエリを確認でき、それらをコピーしてコードで使用できます。

于 2012-05-19T02:31:29.893 に答える
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結合について学びます。

于 2012-05-26T05:54:32.567 に答える
0

WordPressのネイティブ関数を使用できますget_term_by例:

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

そして今$termは用語オブジェクトなので、使用できます$term->ID

于 2012-05-27T13:44:42.893 に答える
0

名前とスラッグは同じテーブルに格納されているので、次のように実行する必要があります(mysqlのみ、WPクエリは含まれません)。

SELECT term_id as id FROM wp_terms WHERE slug = 'slug-here';
于 2012-05-25T20:26:29.757 に答える