• اطلاعیه ها

    • Saeed Fard

      پوشش زنده وردکمپ ۲۰۱۸ اروپا توسط وردپرس پارسی   23/03/97

      اگر کاربر وردپرس هستید حتما تا به حال اسم وردکمپ رو شنیدید، کمپ و دورهمی بزرگ توسعه‌دهنده‌ها و کاربران وردپرس که سالانه در کشورهای مختلف برگزار میشه تحت عنوان وردکمپ هستش که از سمت مراجع اصلی وردپرس حمایت و برگزار می‌شه.   این‌ بار در سال 2018 وردکمپ اروپا در شهر بلگراد کشور صربستان در حال برگزاری هستش، این رویداد طی سه روز 24 تا 26 تیر ماه (June 14-16) برگزار میشه، در این رویداد مصطفی صوفی از وردپرس پارسی و به نمایندگی تمامی کاربران وردپرس فارسی حضور داره. وردپرس پارسی رویداد وردکمپ 2018 اروپا رو به صورت زنده توسط مصطفی پوشش می‌ده و در صورت علاقه‌مندی به این مراسم می‌تونید از طریق وردپرس پارسی دنبالش کنید.در حال حاضر یک روز از این مراسم گذشته که گزارش اون در قسمت پوشش زنده قرار گرفته. برای دنبال کردن مراسم وردکمپ اروپا به صورت لحظه‌ای به صفحه پوشش زنده در قسمت زیر مراجعه کنید. همینطور در آینده منتظر خبر برگزاری اولین وردکمپ در ایران توسط وردپرس‌پارسی باشید. https://wp-parsi.com/wceu-2018

      لینک خبر در وردپرس پارسی : https://wp-parsi.com/wceu-2018-live  
جاوید

استفاده از 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

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


لینک به پست

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط مسعود
      با سلام 
      من توی یک دوره انگلیسی در رابطه با قالب وردپرس که دیدم. در مراحل اول کار با کد زیر 
      <?php while(have_posts()) { the_post(); ?> <h2> <?php the_title() ?> </h2> <?php the_content(); ?> <hr> <?php } ?> نتیجه ای که به طرف میده این هستش

      ولی وقتی من از همین کد استفاده میکنم به جای خروجی مثل بالا که نوشته ها رو برگردونه، با اینکه من تعداد زیادی هم نوشته دارم خروجی مثل عکس زیر به من میده، دوستان میتونید بگبد علت چیه؟ من از وردپرس نگارش 4.9.6 و xampp v3.3.2 استفاده میکنم.

    • توسط سعید فرزادی پور
      با عرض سلام
      من به مشکلی خوردم که راه حل اون رو نمیدونم
      در هدر سایت یک نویگیشن بار دارم که منوی اصلی سایتم به صورت دراپ داون در این نویگیشن بار وجود داره ، قال سایت من shaply هستش و استفاده از ویجت ها در body بازه ، من با استفاده از یک ویجت اسلایدر در بالاترین قسمت و زیر هدر سایت که ارتفاع اونم 55 پیکسل هستش اسلایدر بزرگ ایجاد کردم ، و حالا زمانی که میرم روی دراپ داون ها متاسفانه تا قبل از اسکرول کردن به پایین ، زیر منو ها به زیر اسلایدر میرن ، اما بعد از اسکرول کردن به پایین این مشکل حل شده و منو ها و زیر منو ها نمایش داده میشن ، هرچه z-index رو افزایش دادم نتیجه ای نداشت ، چطور میتونم این مشکل رو حل کنم ؟
      و سوال دوم این که در این تم منو ها اول به پایین و بعد به راست باز میشن و من میخوایم سایت رو به صورت فارسی داشته باشم و میخوام اول به پایین و بعد به چپ باز بشن منو ها , چه تغییری میتونم در css ایجاد کنم ؟
    • توسط unid_user
      سلام دوستان
      برای نمایش پست ها در برگه خانه با 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 بشن.
       
      موفق باشید