• اطلاعیه ها

    • Morteza

      باهم بسازیم: اطلس ووکامرس و وردپرس   14/07/96

      تاپیک ایجاد شده برای بحث در جهت ایجاد یک منبع، ویکی، صفحات توضیحی و یا بخش آموزشی جامع برای وردپرس و متعلقات مختلف آن است. لطفا جهت مشارکت در این بحث، ارائه پیشنهاد و یا انتقاد به تاپیک فوق مراجعه کنید. باهم بسازیم: اطلس ووکامرس و وردپرس
جاوید

استفاده از wp_statistics در Loop

5 پست در این موضوع قرار دارد

من برای یک پروژه وردپرسی از wp_statistics استفاده میکنم که آمار بازدیدهای سایت رو برای من ثبت میکنه.

نیاز داشتم که نوشته ها رو بر اساس تعداد بازدید نشون بدم اما متاسفانه این افزونه از WP_Query ساپورت نمیکنه .

اما همیشه راه حلی هست، در ادامه روشی که من برای گرفتن ۱۰ پست پربازدید استفاده کردم رو توضیح میدم، اگه پیشنهادی دارید لطفا بگید تا این روش رو بهتر کنیم.

ما در WP_Query با استفاده از post__in میتونیم شناسه پست ها رو بدیم و لوپ رو بر اساس اون شناسه ها بسازیم.

پس اگه شناسه مطالب بر اساس بازدید رو به دست بیاریم میتونیم لوپ مورد نظر رو بسازیم.

افزونه آمار، اطلاعات بازدید رو در جدول statistics_pages ذخیره میکنه، لازم بود که این جدول رو با جدول مطالب جوین کنیم تا اطلاعات رو به دست بیارم


SELECT *
FROM `wp_statistics_pages`
JOIN `wp_posts`
ON wp_posts.ID = wp_statistics_pages.id

حالا مشکل اینجاست که این روش مجموع بازدید ها رو برای ما نمیاره و بازدیدهای هر روز رو در یک ردیف میاره و ردیفهای بسیار زیادی ایجاد میشه و سورت کردن ممکن نیست.

پس لازمه که این خروجی رو بر اساس شناسه گروه‌بندی کنیم:


SELECT *
FROM `wp_statistics_pages`
JOIN `wp_posts`
ON wp_posts.ID = wp_statistics_pages.id
GROUP BY id

حالا میتونیم سورت رو انجام بدیم و ۱۰ نتیجه آخر رو دریافت کنیم:


SELECT *
FROM `wp_statistics_pages`
JOIN `wp_posts`
ON wp_posts.ID = wp_statistics_pages.id
GROUP BY id
ORDER BY count
DESC
LIMIT 10

من به یک نوع مطلب خاص (publication) نیاز داشتم و فقط شناسه ها رو میخوام، پس کوئری نهایی من میشه این :‌


SELECT wp_statistics_pages.id
FROM `wp_statistics_pages`
JOIN `wp_posts`
ON wp_posts.ID = wp_statistics_pages.id
WHERE wp_posts.post_type = 'publication'
GROUP BY id
ORDER BY count
DESC
LIMIT 6

حالا این کوئری رو توی وردپرس اجرا میکنم و نتایج رو به دست میارم :‌


global $wpdb;
$results = $wpdb -> get_results('SELECT wp_statistics_pages.id
FROM `wp_statistics_pages`
JOIN `wp_posts`
ON wp_posts.ID = wp_statistics_pages.id
WHERE wp_posts.post_type = 'publication'
GROUP BY id
ORDER BY count
DESC
LIMIT 10', ARRAY_A );

و در نهایت با استفاده از این موارد به دست آمده لوپ نهایی خودم رو میسازم، اینجا لازمه که مجددا نوع مطلب رو هم مشخص کنیم و برای اینکه ترتیب به هم نخوره هم از 'orderby' => 'post__in' استفاده میکنم:


$args = array(
'post_type' => 'publication',
'post__in' => $results,
'orderby' => 'post__in'
);
$query = new WP_Query( $args );

نتیجه رو میتونید توی صفحه اول تیتر ببینید.

لطفا نظراتتون در مورد این روش رو برای من بنویسید و خوشحال میشم اگه پیشنهادی برای برای بهتر شدن دارید بهم بگید.

0

به اشتراک گذاری این پست


لینک به پست

سلام، بله در حال حاضر از کوئری پشتیبانی نمیکنه.

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

0

به اشتراک گذاری این پست


لینک به پست

باز خوبه آقا مصطفی خودش جواب داد :rolleyes:

توضیحش طولانیه ولی اگه کسی بعدا خواست استفاده کنه، کوئری بالا جواب دقیق نمیده و این کوئری اصلاح شده بهتره :‌


SELECT wp_statistics_pages.id
FROM `wp_statistics_pages`
JOIN `tt_posts`
ON wp_posts.ID = wp_statistics_pages.id
WHERE wp_posts.post_type = 'publication'
GROUP BY wp_posts.id
ORDER BY sum(wp_statistics_pages.count)
DESC
LIMIT 6

0

به اشتراک گذاری این پست


لینک به پست
در در 4/20/2015 at 13:57، جاوید گفته است :

باز خوبه آقا مصطفی خودش جواب داد :rolleyes:

توضیحش طولانیه ولی اگه کسی بعدا خواست استفاده کنه، کوئری بالا جواب دقیق نمیده و این کوئری اصلاح شده بهتره :‌

 

 

SELECT wp_statistics_pages.id
FROM `wp_statistics_pages`
JOIN `tt_posts`
ON wp_posts.ID = wp_statistics_pages.id
WHERE wp_posts.post_type = 'publication'
GROUP BY wp_posts.id
ORDER BY sum(wp_statistics_pages.count)
DESC
LIMIT 6

 

برا من هیچکدومش کار نکرد

میشه بیشتر راهنمایی کنید؟

0

به اشتراک گذاری این پست


لینک به پست
در در 8/8/2017 at 01:37، mahdi0000 گفته است :

برا من هیچکدومش کار نکرد

میشه بیشتر راهنمایی کنید؟

این کد مال سایت منه که از پرفیکس tt_ استفاده میکنه.

 

به جای tt_posts از wp_posts بزار و تست کن.

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط masoudch
      سلام دوستان
      برای نمایش پست ها در برگه خانه با WP_Query به مشکل خوردم و نمیدونم مشکلش کجاست.
      من یه برگه ساختم با اسم page-home.php و داخلش کد زیر را وارد کردم:
      <?php get_header(); ?> <?php $lastBlog = new WP_Query('type=post&posts_per_page=1'); if( $lastBlog->have_posts() ): while( $lastBlog->have_posts() ): $lastBlog->the_post(); ?> <?php get_template_part('content',get_post_format()); ?> <?php endwhile; endif; wp_reset_postdata(); ?> <?php if (have_posts()): while (have_posts()): the_post(); echo "فرمت این پست هست: " . get_post_format(); ?> <?php get_template_part('content',get_post_format()); ?> <?php endwhile; endif; ?> <?php get_sidebar(); ?> <?php get_footer(); ?> لطفا راهنمایی کنید. ممنون
    • توسط poruamohammady
      سلام دوستان من یه مدت هست افزونه هایی که نصب می کنم ورد پرس بهم این اخطار هار رو میده کسی میتونه کمک کنه برای مثال تازگی ها افزونهwp-super cacheرو که نصب کردم این اومد قبلا هم چیزای دیگه بود مرسی اگر راهنمایی کنید

    • توسط mehran-b
      با سلام و عرض ادب خدمت تمامی کاربران انجمن وردپرس پارسی
       
      امروز یک کدی براتون قرار میدم که با استفاده از این کد میتونید به تمامی پست های یه دسته خاص از وب سایتتون متای robots با مقدار noindex,follow اضافه کنید.
       
      در صورت نصب بودن افزونه سئو وردپرس
      add_filter('wpseo_robots', 'mehran_specific_category_posts_add_noindex_yoast'); function mehran_specific_category_posts_add_noindex_yoast($content) { if(is_single() && in_category(777)) { return "noindex,follow"; } return $content; } در صورت نصب نبودن افزونه سئو وردپرس
      add_action('wp_head', 'mehran_specific_category_posts_add_noindex'); function mehran_specific_category_posts_add_noindex() { if(is_single() && in_category(777)) { $output = '<meta name="robots" content="noindex,follow" />' . "\n"; } echo $output; }  
      توجه1: کدهای بالا رو باید در فایل functions.php قالب سایتتون و زیر اولین
      <?php قرار بدید.
      توجه2: به جای عدد 777 در کد باید آیدی دسته ای رو قرار بدید که قراره پست هاش noindex,follow بشن.
       
      موفق باشید
    • توسط mbonjakhi
      باسلام
      سوالی از خدمتتون داشتم.
      میشه من یه دامنه .ir خریداری کنم و کد های یک سایت خاص رو کلا کپی کنم و تو دامنه خودم بکار ببرم؟
      یعنی اینکه دیگه نیازی به طراحی سایت نداشته باشه و به راحتی سایتم ساخته بشه؟
      اگه امکانش هست واسم یه مقدار توضیح بدید باید چیکار  کنم.
      ممنون
    • توسط behnam_buss
      سلام
      بخش دسته بندی محصولات در ووکامرس من غیرفعال شده و دسته بندی هایی که قبلا انجام داده بودم رو نمی تونم ببینم و ویرایش کنم و یا حتی وقتی یه دسته بندی جدید هم می سازم نمایش داده نمیشه.
      هر محصول هم که اضافه می کنم و جایی که باید محصول رو تو دسته بندی خودش قرار بدم بازم دسته بندی رو تو قسمت ویرایش خود محصول نمی بینم و نمی تونم تو دسته ی خاص خودش قرار بدم.
      ضمنا همین مشکل برای بخش فهرست های سایتم هم بوجود اومده و فهرست ها رو نمی بینم و کلا بخش فهرست های وردپرسم غیرفعال شده و نمی تونم فهرست جدید بسازم.
      نکته ای که هست اینه که فهرست ها و دسته بندی های قبلی که ساخته بودم تو خود سایت که داره نمایش داده میشه درسته و تو بخش مدیریت وردپرس این مشکلات وجود داره!!!