انجمن


تابع سرچ وردپرس  (۱۲ نوشته)

  • 611

    آفلاین
    عضو
    تعداد نوشته‌ها: ۴۵
    تشکر شده: ۴ بار
    # نوشته شده: ۱۵ سال پیش
    ۲۹ شهریور ۱۳۸۸ - ۱۷:۵۴

    سلام
    تابع سرچ ورد پرس کجا هست ؟ من یک فروشگاه با وردپرس زدم میخوام براش سرچ درست کنم ، چون الآن وردپرس فقط table مطالب را سرچ میکنه

    من می بینم که url رو میخونه فقط !

  • گناهکار

    آفلاین
    کلیددار
    تعداد نوشته‌ها: ۳۵۳۵
    تشکر شده: ۲۵۴۵ بار
    # نوشته شده: ۱۵ سال پیش
    ۲۹ شهریور ۱۳۸۸ - ۲۱:۵۶

    می‌شه دقیق‌تر بفرمایین چی می‌خواین؟

  • 611

    آفلاین
    عضو
    تعداد نوشته‌ها: ۴۵
    تشکر شده: ۴ بار
    # نوشته شده: ۱۵ سال پیش
    ۳۰ شهریور ۱۳۸۸ - ۰۱:۵۰

    من WP Shopping Cart را نصب کردم ، بعد محصولات را وارد کردم ، ولی وقتی از ابزارک سرچ وردپرس را فعال میکنم و باهاش سرچ میکنم ، چیزی پیدا نمی کنه.

    فکر میکنم دلیلش این هست ، که این ابزارک فقط محتوای داخل تیبل وردپرس را سرچ میکنه و دیگر تیبل فروشگاه را سرچ نمیکنه .

    من هر چی گشتم ، فانکشن سرچ وردپرس را پیدا نکردم ، که اون رو طوری تعییر بدم محتوای پلاگین فروشگته را هم سرچ کنه .

    فانکشن سرچ وردپرس کجا و تو کدوم فابل تعریف شده است ؟

  • گناهکار

    آفلاین
    کلیددار
    تعداد نوشته‌ها: ۳۵۳۵
    تشکر شده: ۲۵۴۵ بار
    # نوشته شده: ۱۵ سال پیش
    ۳۰ شهریور ۱۳۸۸ - ۰۲:۱۶

    وردپرس یه کوئری به پایگاه‌داده می‌فرسته واسه‌ی جستجو که شما باید اون رو دستکاری کنین. خط ۱۷۴۲ از پرونده‌ی زیر رو ببینین:
    wp-includes/query.php

    فکر کنم با دستکاری این افزونه هم بتونین به‌اون چیزی که می‌خواین برسین:
    http://wordpress.org/extend/plugins/search-everything/

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    611
  • 611

    آفلاین
    عضو
    تعداد نوشته‌ها: ۴۵
    تشکر شده: ۴ بار
    # نوشته شده: ۱۵ سال پیش
    ۳۰ شهریور ۱۳۸۸ - ۱۱:۳۵

    خط ۱۷۵۶

    $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ش رو می‌تونین توی خطوط پایین‌تر [مثلن ۲۲۵۵] ببینین.

  • 611

    آفلاین
    عضو
    تعداد نوشته‌ها: ۴۵
    تشکر شده: ۴ بار
    # نوشته شده: ۱۵ سال پیش
    ۳۰ شهریور ۱۳۸۸ - ۲۲:۴۷

    خوب مثلا من این تابع از پلاگین را انتخاب کردم ، که بزارمش برای جستجو تو تیبل فروشگاه :

    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

  • 611

    آفلاین
    عضو
    تعداد نوشته‌ها: ۴۵
    تشکر شده: ۴ بار
    # نوشته شده: ۱۵ سال پیش
    ۳۰ شهریور ۱۳۸۸ - ۲۳:۲۷

    من از این دستور استفاده کردم
    $wpdb->wpsc_product_list.description
    ولی وقتی echo کردم ، این رو بر گردوند

    OR ((.description LIKE '%کارتون%'))

    یعنی اسم تیبل wpsc_product_list را بر نگردوند ، فکر میکنم wpsc_product_list را نمیشناسه .

  • گناهکار

    آفلاین
    کلیددار
    تعداد نوشته‌ها: ۳۵۳۵
    تشکر شده: ۲۵۴۵ بار
    # نوشته شده: ۱۵ سال پیش
    ۳۱ شهریور ۱۳۸۸ - ۰۰:۲۴

    درسته، با اون عبارت نمی‌تونه جستجو کنه.

    یه تابع براتون نوشتم که توی نام و توضیحات محصولات می‌گرده:

    PLAIN TEXT
    function search_wp_e_commerce($term = '') {
        global $wpdb;
        return $wpdb- >get_results("SELECT * FROM {$wpdb- >prefix}wpsc_product_list WHERE (name LIKE '%$term%' OR description LIKE '%$term%')", ARRAY_A);
    }


    دیگه با توجه به نیازها و سلیقه‌ی خودتون ازش استفاده کنین.

    توجه: ممکنه پردازشگره دستورات‌ه انجمن بین بعضی از حروف تابع بالا فاصله بندازه.

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    611
  • 611

    آفلاین
    عضو
    تعداد نوشته‌ها: ۴۵
    تشکر شده: ۴ بار
    # نوشته شده: ۱۵ سال پیش
    ۴ مهر ۱۳۸۸ - ۱۴:۳۱

    من تابع را در قسمت 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 استفاده کنین ببینین خروجی چیه.

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    611

درباره‌ی این موضوع



برچسب‌ها

هیچ برچسبی نیست.