首先讓我說我幾乎沒有發佈在stackoverflow上,所以我希望我在正確的部分。如何強制Wordpress搜索欄搜索頁面不是產品?
我有一個WordPress客戶端的Woocommerce網站。我希望搜索欄不搜索產品,而是搜索頁面。忽略所有產品是很重要的,因爲我們不從產品頁面訂購產品,而是在多個頁面上收集標有產品名稱的訂單表格。我們可以更改搜索欄,以便只在頁面上顯示而不顯示產品?
我很喜歡在functions.php中工作或在我的子主題中複製Woocommerce文件。任何幫助深表感謝!
[**編輯/ UPDATE **] 我現在有這樣的:
function filter_search($query) {
if ($query->is_search) {
$query->set('post_type', array('post', 'page'));
}
return $query;
}
add_filter('pre_get_posts', 'filter_search');
function __search_by_title_only($search, &$wp_query){
global $wpdb;
if (empty($search))
return $search; // skip processing - no search term in query
$q = $wp_query->query_vars;
$n = ! empty($q['exact']) ? '' : '%';
$search =
$searchand = '';
foreach ((array) $q['search_terms'] as $term) {
$term = esc_sql(like_escape($term));
$search .= "{$searchand}($wpdb->posts.post_title LIKE '{$n}{$term{{$n}')";
$searchand = ' AND ';
}
if (! empty($search)) {
$search = " AND ({$search}) ";
if (! is_user_logged_in())
$search .= " AND ($wpdb->posts.post_password = '') ";
}
$search .= " AND ($wpdb->posts.post_type = 'page') ";
return $search;
}
add_filter('posts_search', '__search_by_title_only', 500, 2);
這是可以正常使用。它搜索不是產品的頁面,而是在標題中搜索搜索詞而不是內容。現在我唯一的要求和問題是我需要使其輸出頁面LINK而不是頁面CONTENT。 (它輸出頁面的純含量,一個接一個)
[** EDITED/UPDATE#2 **]
我通過刪除所有的代碼和複製產品 - 來實現相同的結果如上searchform.php(從woocommerce)到我的子主題(在文件夾名爲woocommerce)和改變:
<input type="hidden" name="post_type" value="product" />
到
<input type="hidden" name="post_type" value="page" />
這實現查詢僅PA同樣影響ges而不是產品,並且在頁面標題中搜索關鍵字而不是在頁面內容中搜索。現在我仍然得到相同的輸出顯示頁面內容,我只希望它顯示頁面的鏈接,而不是內容。有任何想法嗎?
[** EDITED/UPDATE 3 **] 好的,我解決了這個問題。
下一步是將search.php複製到您的子主題並添加一些代碼。 地址:
$s=get_search_query();
$args = array('s' =>$s);
// The Query
$the_query = new WP_Query($args);
右
if (have_posts()) : ?>
之前再加入:
while ($the_query->have_posts()) {
$the_query->the_post();?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li><?php
}
權利之前:
get_template_part('loop');
並評論說,get_template_part( '迴路');一部分。
添加以下代碼你嘗試過這麼遠嗎? – Dwhitz
@Dwhitz我剛剛嘗試了一些代碼,在我原來的帖子中查看我的更新。現在我只需要輸出頁面鏈接而不是頁面內容。例如,我可以有5個與此相匹配的頁面,我不希望所有5個頁面內容都被一個接一個地輸出。相反,我需要的鏈接列表 –