ホームページ  >  記事  >  バックエンド開発  >  WordPress ソースコードを読むときの混乱: 分類がない場合は、tt_ids を想定します

WordPress ソースコードを読むときの混乱: 分類がない場合は、tt_ids を想定します

WBOY
WBOYオリジナル
2016-06-20 12:32:18959ブラウズ

以下のWordPressのソースコードを読んで、多くのことを学びましょう。以下の関数で、「分類法がない場合は tt_ids を仮定する」とはどういう意味ですか?矛盾してますよね?空なので、term_id はどこから来たものだと考えられますか?空なので、term_taxonomy テーブルから選択するにはどうすればよいでしょうか?
専門家のアドバイスをお願いします。
/**
* キャッシュからすべての用語 ID を削除します。
*
* @since 2.3.0
* @uses $wpdb
*
* @param int|array $ids 単一の または 用語 ID のリスト
* @param string $分類法は空にすることができ、tt_ids を想定します。それ以外の場合はコンテキストに使用されます。
* @param bool $clean_taxonomy 分類全体のキャッシュをクリーンするか (true)、または個別の用語オブジェクト キャッシュのみをクリーンするか (false)。 デフォルトは true です。
 */
function clean_term_cache($ids, $taxonomy = '', $clean_taxonomy = true) {
global $wpdb;

if ( !is_array( $ids) )
$ids = array($ids);

$taxonomies = array();
// 分類がない場合、
if ( empty($taxonomy) ) ) {
$tt_ids = array_map('intval', $ids);
$tt_ids = implode(', ', $tt_ids);
$terms = $wpdb->get_results(" SELECT term_id, 分類 FROM $wpdb->term_taxonomy WHERE
term_taxonomy_id IN ($tt_ids)");
$ids = array();
foreach ((array) $terms as $term ) {
$taxonomyes[] = $term->taxonomy;
$ids[] = $term->term_id
wp_cache_delete($term->term_id, $term->taxonomy); > }
$taxonomies = array_unique($taxonomy);
} else {
$taxonomies = array($taxonomy);
foreach ( $taxonomy として $taxonomy ) {
foreach ( $ ids as $id ) {
wp_cache_delete($id, $taxonomy);
}
}
}

foreach ( $taxonomy as $taxonomy ) {
if ( $clean_taxonomy ) {
wp_cache_delete('all_ids', $taxonomy);
wp_cache_delete('get', $taxonomy)
delete_option("{$taxonomy}_children"); // 再生成{$taxonomy}_children
_get_term_hierarchy($taxonomy);

/**
* 各分類の用語キャッシュが削除された後に 1 回起動します。
*
* @since 2.5.0
*
* @param array $ids 用語 ID の配列。
* @param 文字列 $taxonomy Taxonomy slug。
 */
do_action( 'clean_term_cache', $ids, $taxonomy ); > }

wp_cache_set( 'last_changed', microtime(), 'terms' );




ディスカッションへの返信 (解決策) 分類がない場合は、tt_ids を想定します—パラメータ分類が空の場合、パラメータ ID は tt_ids であると想定します -- - -term_taxonomy テーブルの -term_taxonomy_id。それ以外の場合は、term_id とみなされます。

$taxonomy (カテゴリ名) が空の場合、$ids (カテゴリ) に対応するカテゴリ名を取得します。番号)

以降の検索はカテゴリ名に基づいて行われるため

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:LAMP之mysql+php次の記事:LAMP之mysql+php