基本的に、カテゴリスラッグが保存されたCookieがあります。このデータを使用して、データベースにクエリを実行し、カテゴリのIDを返します。
私はmysqlを初めて使用しますが、これは結合を使用する必要がある高度なクエリのようです。ヘルプやガイダンスをいただければ幸いです。
ありがとうございました!
基本的に、カテゴリスラッグが保存されたCookieがあります。このデータを使用して、データベースにクエリを実行し、カテゴリのIDを返します。
私はmysqlを初めて使用しますが、これは結合を使用する必要がある高度なクエリのようです。ヘルプやガイダンスをいただければ幸いです。
ありがとうございました!
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がカテゴリと関連データを取得するために実行したクエリを確認でき、それらをコピーしてコードで使用できます。
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結合について学びます。
WordPressのネイティブ関数を使用できますget_term_by
例:
$term = get_term_by('slug',$SLUG_FROM_COOKIE,'category');
そして今$term
は用語オブジェクトなので、使用できます$term->ID
名前とスラッグは同じテーブルに格納されているので、次のように実行する必要があります(mysqlのみ、WPクエリは含まれません)。
SELECT term_id as id FROM wp_terms WHERE slug = 'slug-here';