با سلام خدمت کاربران عزیز و محترم آقای وردپرس
امروز با جستجو فقط در عنوان پست ها در خدمت شما هستم که امیدوارم ازش خوشتون بیاد.
همانطور که میدانید جستجوی وردپرس بطور پیشفرض هم در متن و هم در عنوان پست ها و برگه ها جستجو میکند . خب این کار یک سری مزیت داره و یک سری مشکل . اما گاهی اوقات شاید لازم دارید که جستجو محدود به عنوان پست ها باشه و متن پست رو جستجو نکنه ! برای اینکار نمیخواهد هسته وردپرس رو ادیت کنید … کافیست با ما باشید در ادامه با یک تکه کد ساده به شما این کار را آموزش میدهیم …
کافیست کد زیر را در functions.php قرار دهید :
<?php
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 = '') "
;
}
return
$search
;
}
add_filter(
'posts_search'
,
'__search_by_title_only'
, 500, 2 );
?>
خب تمام شد ! الان اگر فرم جستجو در سایت داشته باشید میتوانید با تست کردن متوجه بشید که فقط در عنوان ها جستجو میکند …
موفق و سربلند باشید.
بدرود.
منتظر نظرات سازندتون هستم نظر یادتون نره!!!