簡體   English   中英

(Wordpress +自動完成功能)搜索標簽並獲得所有搜索標簽的列表?

[英](Wordpress + Autocomplete) Search for tags and get a list of all posts for searched tag?

我正在嘗試使用自定義的自動完成建議列表來構建wordpress搜索。 我只想將搜索限制為標簽,並且如果用戶鍵入的搜索查詢適合任何標簽或多個標簽,則自動完成列表應返回與此標簽/這些標簽關聯的所有帖子。

例如,輸入“爵士”可以給出:

Jazz
  Post 1
  Post 2
  Post 3
  Post 4
  Post 5

Jazz House
  Post 1
  Post 2
  Post 3

Great Jazz Trio
  Post 1

…

有一個自動完成的例子,使用category 這可能會朝正確的方向發展,但是這里的搜索查詢是“帖子”,將在其類別下列出。 我需要用戶搜索類別(標簽)以列出與其相關聯的所有帖子。

我認為有可能創建所有標簽的對象數組。 每個對象(標簽)可以包含所有相關帖子。 該數組可以用作自動完成的數據源。

如果有任何建議,我將很高興。

global $wpdb;

// search term provided by user
$s = 'jazz';

$query = '
SELECT wp.post_title AS label, wt.name AS category 
FROM `wp_posts` wp
INNER JOIN `wp_term_relationships` wtr ON (wp.`ID` = wtr.`object_id`)
INNER JOIN `wp_term_taxonomy` wtt ON (wtr.`term_taxonomy_id` = wtt.`term_taxonomy_id`)
INNER JOIN `wp_terms` wt ON (wt.`term_id` = wtt.`term_id`)
WHERE wp.post_type="post" AND wp.post_status="publish" AND wtt.taxonomy = "post_tag" AND wt.name LIKE "%%%s%%"
ORDER BY wt.name, wp.post_date DESC';

$posts = $wpdb->get_results( $wpdb->prepare( $query, $s ) );

如果我沒記錯的話,那么您的目標是將數據數組提供給jQuery UI Autocomplete插件,如例所示。 最快的方法(就性能而言)是創建一個自定義查詢,該查詢將連接wp_postswp_terms表,具體取決於用戶提供的搜索詞。 轉換為json( json_encode($ posts) )后,查詢結果將采用適用於自動完成插件的格式:

[ 
    { label: "Post 1", category: "Great Jazz Trio" }, 
    { label: "Post 1", category: "Jazz" },
    { label: "Post 2", category: "Jazz" },
    { label: "Post 3", category: "Jazz" },
    { label: "Post 4", category: "Jazz" },
    { label: "Post 5", category: "Jazz" },
    { label: "Post 1", category: "Jazz House" },
    { label: "Post 2", category: "Jazz House" },
    { label: "Post 3", category: "Jazz House" }
]

先生,

你可以使用這個插件

https://wordpress.org/plugins/search-autocomplete/

它還將支持自定義帖子類型。 用jQuery UI完成

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM