سلام
تابع سرچ ورد پرس کجا هست ؟ من یک فروشگاه با وردپرس زدم میخوام براش سرچ درست کنم ، چون الآن وردپرس فقط table مطالب را سرچ میکنه
من می بینم که url رو میخونه فقط !
سلام
تابع سرچ ورد پرس کجا هست ؟ من یک فروشگاه با وردپرس زدم میخوام براش سرچ درست کنم ، چون الآن وردپرس فقط table مطالب را سرچ میکنه
من می بینم که url رو میخونه فقط !
میشه دقیقتر بفرمایین چی میخواین؟
من WP Shopping Cart را نصب کردم ، بعد محصولات را وارد کردم ، ولی وقتی از ابزارک سرچ وردپرس را فعال میکنم و باهاش سرچ میکنم ، چیزی پیدا نمی کنه.
فکر میکنم دلیلش این هست ، که این ابزارک فقط محتوای داخل تیبل وردپرس را سرچ میکنه و دیگر تیبل فروشگاه را سرچ نمیکنه .
من هر چی گشتم ، فانکشن سرچ وردپرس را پیدا نکردم ، که اون رو طوری تعییر بدم محتوای پلاگین فروشگته را هم سرچ کنه .
فانکشن سرچ وردپرس کجا و تو کدوم فابل تعریف شده است ؟
وردپرس یه کوئری به پایگاهداده میفرسته واسهی جستجو که شما باید اون رو دستکاری کنین. خط ۱۷۴۲ از پروندهی زیر رو ببینین:
wp-includes/query.php
فکر کنم با دستکاری این افزونه هم بتونین بهاون چیزی که میخواین برسین:
http://wordpress.org/extend/plugins/search-everything/
خط ۱۷۵۶
$search .= "{$searchand}(($wpdb->posts.post_title LIKE '{$n}{$term}{$n}') OR ($wpdb->posts.post_content LIKE '{$n}{$term}{$n}'))";
قسمت
$wpdb->posts.post_title
کجا پر میشه ؟ من هیچ select ای قبلش نمی بینم .
تا اونجایی که من گوگل کردم ، باید آرایه wpdb یک جایی پر بشه ؟ میشه یکم راهنمایی کنید
عرض کردم که٬ بهتره با دستورات هستهی وردپرس کار نکنین٬ بهتره همون افزونهای که معرفی کردم رو دستکاری کنین.
در مورد سوالتون هم باید عرض کنم که اون خطوطی که تو نوشتهی قبلی بهتون آدرس دادم٬ فقط بخشی از یه کوئری بزرگ هستن که به پایگاه داده فرستاده میشن. SELECTش رو میتونین توی خطوط پایینتر [مثلن ۲۲۵۵] ببینین.
خوب مثلا من این تابع از پلاگین را انتخاب کردم ، که بزارمش برای جستجو تو تیبل فروشگاه :
function se_build_search_excerpt()
{
global $wp_query, $wpdb;
$s = $wp_query->query_vars['s'];
$search_terms = $this->se_get_search_terms();
$exact = $wp_query->query_vars['exact'];
$search = '';
if ( !empty($search_terms) ) {
// Building search query
$n = ($exact) ? '' : '%';
$searchand = '';
foreach($search_terms as $term) {
$term = addslashes_gpc($term);
$search .= "{$searchand}($wpdb->posts.post_excerpt LIKE '{$n}{$term}{$n}')";
$searchand = ' AND ';
}
$sentence_term = $wpdb->escape($s);
if (!$sentence && count($search_terms) > 1 && $search_terms[0] != $sentence_term )
{
$search = "($search) OR ($wpdb->posts.post_excerpt LIKE '{$n}{$sentence_term}{$n}')";
}
if ( !empty($search) )
$search = " OR ({$search}) ";
}
$this->se_log("excerpt where: ".$where);
return $search;
}
خوب حالا من چطور می تونم به تیبل wp_wpsc_product_list دسترسی پیدا کنم .
$wpdb->posts.post_excerpt
با تابع wpdb فقط میشه به تیبل های وردپرس دسترسی پیدا کرد ، چطور میتونم به دیگر تیبل ها دسترسی پیدا کنم ؟ آیا تابعی هست ؟
احتمالن با این بتونین جدول موردنظرتون رو انتخاب کنین:
$wpdb->wpsc_product_list
من از این دستور استفاده کردم
$wpdb->wpsc_product_list.description
ولی وقتی echo کردم ، این رو بر گردوند
OR ((.description LIKE '%کارتون%'))
یعنی اسم تیبل wpsc_product_list را بر نگردوند ، فکر میکنم wpsc_product_list را نمیشناسه .
درسته، با اون عبارت نمیتونه جستجو کنه.
یه تابع براتون نوشتم که توی نام و توضیحات محصولات میگرده:
توجه: ممکنه پردازشگره دستوراته انجمن بین بعضی از حروف تابع بالا فاصله بندازه.
من تابع را در قسمت wp-include/function.php گزاشتم
تابع سرچ :
function search_wp_e_commerce($term = '') {
global $wpdb;
//echo "SELECT * FROM {$wpdb->prefix}wpsc_product_list WHERE (name LIKE '%$term%' OR description LIKE '%$term%')";
return $wpdb->get_results("SELECT name FROM {$wpdb->prefix}wpsc_product_list WHERE (name LIKE '%$term%')");
}
بعد از فایل wp/include/theme1/query.php وقتی صدا میزنم کوئری array مینویسه بجای اینکه مقدار بر گردونه.
تابع صدا زدن :
<?$x= search_wp_e_commerce(the_search_query());
foreach ($x as $meghdar) {
echo $meghdar->name;
?>
خروجی
Array
اشکال کارم کجاست ؟
بهجای echo از print_r استفاده کنین ببینین خروجی چیه.