انجمن


نمایش شماره مطلب با استفاده از توایع functions  (۹ نوشته)

  • ~> Mr.vAhiD.DI <~

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

    درود;

    اولاً ارتقای پیج‌رنک گوگل سایت رو به رتبه 6 به همه‌ی دوستان و مخصوصاً اون کسایی که واقعاً زحمت می‌شن تبریک می‌گم و آرزوی پیشرفت روزافزون سایت رو دارم :) ...

    ثانیاً یه سوال داشتم بدون مقدمه عرض می‌کنم... می‌خواستم ببینم چطور می‌شه شماره مطلب رو بدون دردسر به نمایش گذاشت !؟
    با درج این تابع در function دات پی‌اچ‌پی :

    function Get_Post_Number($postID){
    	$temp_query = $wp_query;
    	$postNumberQuery = new WP_Query('orderby=date&order=<strong>DESC</strong>&posts_per_page=-1');
    	$counter = 1;
    	$postCount = 0;
    	if($postNumberQuery->have_posts()) :
    		while ($postNumberQuery->have_posts()) : $postNumberQuery->the_post();
    			if ($postID == get_the_ID()){
    				$postCount = $counter;
    			} else {
    				$counter++;
    			}
    	endwhile; endif;
    	wp_reset_query();
    	$wp_query = $temp_query;
    	return $postCount;
    }

    و فراخوانی کد زیر :

    <?php $currentID = get_the_ID(); ?>
    <?php $currentNumber = Get_Post_Number($currentID); ?>
    <?php echo $currentNumber; ?>

    می‌شه شماره مطلب رو نمایش داد ولی این یه ایراد داره و اونم اینه‌که شماره مطالب برعکسه..! یکی پست آخر شمارش 1 و پست اول شمارش برای آخرین مطلبه ..! البته گفتینه که با تغییر DESC به ASC هم درست نشد ...

    از اساتید اهل فن تقاضا دارم لطف کنن یه راهنمایی کنن.. این یه مورد رو باید وردپرس خودش می‌داشت مثل سایر CMSها ولی متأسفانه نداره ... :)

    شاد باشید

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Mostafa - Saeed Fard - محسن غیاثی - forklift
  • گناهکار

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

    شماره مطلب یعنی چی؟

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Mostafa - Saeed Fard - ~> Mr.vAhiD.DI <~
  • ~> Mr.vAhiD.DI <~

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

    گناهکار جام منظورم شماره مطلب هست ... چطوری بگم ... مثلاً 156 تا مطلب داریم ... بعد بنویسه مثلاً نوشته‌ی 156امی .... راستش دیگه نمیدونم چطوری بگم ...

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    محسن غیاثی
  • Mostafa

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

    اگر از تابع get_the_ID دریافت کنید شاید ترتیب شماره‌ها منظم نباشه. نیازی به اون تابع اولی هم نیست!
    اگر منظورتون اینه که مثلا 50 تا نوشته دارید و شماره ID نوشته آخری هم مثلا 1563 باشه. می‌تونید تعداد کل نوشته‌های انتشار یافته‌رو از دیتابیس دریافت کنید.
    مثال:

    <?php
    $total_post = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish'");
    echo "نوشته‌ی $total_post امی وبلاگ.";
    ?>
    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    ~> Mr.vAhiD.DI <~ - Saeed Fard - محسن غیاثی
  • ~> Mr.vAhiD.DI <~

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

    تشکر ولی نه مصطفی جان منظورم این نبود ... من می‌خوام برای هر نوشته شماره‌ی اون رو درج کنم ... شما اگه یا بار اون مطلب اول رو تست کنید مبینین که برای هر نوشته یه شماره میاد ... ولی تنها مشکلش اینه که برعکسه ...

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Saeed Fard
  • ~> Mr.vAhiD.DI <~

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

    آقا مصطفی لطفاً اینو شما یه تست کن ببین جواب میده یا نه؟

    http://www.transformationpowertools.com/wordpress/continuous-post-numbers
    
    http://wordpress.org/support/topic/give-each-post-a-number-chronologically-latest-post-highest-number

    نمونه ی این چیزی که من میخوام هم اینجاست:

    http://manigraph.com/

    شماره پست ها در پایینش هست ... مثلاً به اینصورت #4 ...

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Saeed Fard - محسن غیاثی
  • Parsa

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

    //Get Post Number
    function cget_post_number($cid=-1)
    {
    	global $post;
    	global $wpdb;
    	$p = $wpdb->get_results("SELECT ID FROM wp_posts where post_status='publish' and post_type='post'");
    	if($cid!=-1)
    		$pid = $cid;
    	else
    		$pid = $post->ID;
    	for($i=0;$i<count($p);$i++){
    		if($p[$i]->ID==$pid){
    			return $i+1;
    			break;
    		}
    	}
    }
    
    //Call in single.php
    echo cget_post_number();
    
    //Call in index.php , ...
    echo cget_post_number($id);

    البته اين روش، روش خوبي نيست، اگر بتونيد تابعي براي جستجو در آرايه 2 بعدي پيدا كنيد، ساده تر هست

    2 شكل فراخواني دارد، براي نمايش در صفحات به غير از پستها بايد id پست را هم ارسال كنيد

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    ~> Mr.vAhiD.DI <~ - محسن غیاثی - Saeed Fard
  • ~> Mr.vAhiD.DI <~

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

    ممنون پارسا جان، ولی نفمیدم برای چی گفتین روش خوبی نیست؟ :)

  • Parsa

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

    فقط قسمت پيدا كردن شماره هست كه خوب نيست
    چون داره از يك حلقه استفاده ميكنه، كه كل id هارو پيمايش ميكنه

    for($i=0;$i<count($p);$i++){
    		if($p[$i]->ID==$pid){
    			return $i+1;
    			break;
    		}
    	}

    كه كار زمانبري هست

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    ~> Mr.vAhiD.DI <~

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



برچسب‌ها

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