در ویرایش جدید وردپرس این طور که من متوجه شدم دستور post_category دیگر قابل استفاده نیست. می خواهم بدانم برای استفاده از این دستور در ورژن جدید وردپرس چه کاری باید انجام داد؟
در ویرایش جدید وردپرس این طور که من متوجه شدم دستور post_category دیگر قابل استفاده نیست. می خواهم بدانم برای استفاده از این دستور در ورژن جدید وردپرس چه کاری باید انجام داد؟
شما دقیقا چه کاری می خواهید انجام بدید ؟!
من تصمیم دارم پلاگین random redirect را جوری تغییر بدهم که یک نوشته تصادفی از یک دسته بندی خاص را نشون بده. به خاطر همین مجبور شدم از دستور post_category استفاده کنم. ولی بعد متوجه شدم این دستور دیگه عمل نمیکنه...
<?php
/*
Plugin Name: Random Redirect
Plugin URI: http://wordpress.org/extend/plugins/random-redirect/
Description: Allows you to create a link to yourblog.example.com/?random which will redirect someone to a random post on your blog, in a StumbleUpon-like fashion.
Version: 1.0.1
Author: Matt Mullenweg
Author URI: http://photomatt.net/
*/
function matt_random_redirect() {
global $wpdb;
$random_id = $wpdb->get_var( "SELECT ID FROM $wpdb->posts WHERE post_type = 'post' AND post_password = '' AND post_status = 'publish' AND post_category =3 ORDER BY RAND() LIMIT 1");
wp_redirect( get_permalink( $random_id ) );
exit;
}
if ( isset( $_GET['random'] ) )
add_action( 'template_redirect', 'matt_random_redirect' );
?>
این پلاگین در حالت عادی یک نوشته تصادفی از کل نوشته های سایت را نشون میدهد. ولی من تصمیم داشتم با اضافه کردن دستور post_category = 3 یک نوشته تصادفی از دسته بندی شماره 3 را نشان بدهم. تا حالا چندین بار به شکلهای مختلف این سوال را مطرح کردم ولی جواب درستی کسی به من نداده.
فکر کنم این باشه :
cat_ID=4
دو صفحه زیر رو نگاه کنید :
http://codex.wordpress.org/Function_Reference
http://codex.wordpress.org/Function_Reference/wpdb_Class
من قبل از اینکه این سوال را مطرح کنم کل این دوتا لینک را زیر و رو کرده بودم ولی چیزی دستتگیرم نشد. از این cat_ID=4 هم استفاده کردم ولی جواب نداد :(( ~X( :?
یک جا توی سایت وردپرس یک سوال مشابه پرسیده شده ولی من سر در نیاوردم میشه شما هم یک نگاه بندازید.
http://wordpress.org/support/topic/149149?replies=3
فکر می کنم مانی بهتر بتونه کمک کنه .
ببین کلا تو وردپرس ۲.۳ به بعد قضیه Category و Tag در هم ادغام شدن در یک ساختار جدید دیتابیسی ... واسه همین این Query که شما نوشتید کار نمی کنه ... می تونید یه کم صبر کنید تا من یه نگاهی بهش بندازم؟
خیلی ممنون مانی جان من منتظر نظرتون هستم....
ببخشید یه کم دیر شد، من افزونه مت (Random Post) رو یه کم تغییر دادم تا بتونه از یک دسته بندی خاص هم کار نمایش تصادفی رو نشون بده... البته شما زحمت تستش رو کامل بکشید، اگر درست کار می کنه، من کاملش کنم (یه کم تغییر تو ذهنمه) و به مت بدم که نسخه جدید رو منتشر کنه.
این آدرس پست تصادفی از همه دسته بندی ها نشون میده:
yourblog.example.com/?random
این آدرس هم پست تصادفی رو از یک دسته بندی خاص نشون میده: (به جای x شماره (ID) دسته رو بگذارید)
yourblog.example.com/?random&random_cat_id=X
این هم متن افزونه به روز شده :
<?php
/*
Plugin Name: Random Redirect
Plugin URI: http://wordpress.org/extend/plugins/random-redirect/
Description: Allows you to create a link to yourblog.example.com/?random which will redirect someone to a random post on your blog, in a StumbleUpon-like fashion. From version 1.1 yourblog.example.com/?random&random_cat_id=X selects posts from specific Category (WP 2.3+)
Version: 1.1
Author: Matt Mullenweg
Author URI: http://photomatt.net/
*/
//TODO : Add URL-Rewrite
function matt_random_redirect() {
global $wpdb;
if (isset($_GET['random_cat_id'])) {
$random_cat_id = (int) $_GET['random_cat_id'];
$query = "SELECT DISTINCT ID FROM $wpdb->posts AS p INNER JOIN $wpdb->term_relationships AS tr ON (p.ID = tr.object_id AND tr.term_taxonomy_id=".$random_cat_id.") INNER JOIN $wpdb->term_taxonomy AS tt ON(tr.term_taxonomy_id = tt.term_taxonomy_id AND taxonomy = 'category') WHERE post_type = 'post' AND post_password = '' AND post_status = 'publish' ORDER BY RAND() LIMIT 1";
} else {
$query = "SELECT ID FROM $wpdb->posts WHERE post_type = 'post' AND post_password = '' AND post_status = 'publish' ORDER BY RAND() LIMIT 1";
}
$random_id = $wpdb->get_var($query);
wp_redirect( get_permalink( $random_id ) );
exit;
}
if ( isset( $_GET['random'] ) )
add_action( 'template_redirect', 'matt_random_redirect' );
?>
لطفا نظرت رو بگو ...
ای ولا، آقا واقعا دستت درد نکنه. کاملا درست کار میکنه. شش ماه بود دنبال حل این مشکل بودم. واقعا عالی نوشته بودی.
امتحانش کردم. در هر دو حالت کاملا درست جواب میده.
خیلی خیلی خیلی .... ممنون
این افزونه با تغییرات شما الآن روی وبلاگ من نصب هست. میتونید کارکردش را اونجا ببینید. مثلا:
http://mastaneh.ir/?random&random_cat_id=14
http://mastaneh.ir/?random
mastaneh گفت:
ای ولا، آقا واقعا دستت درد نکنه. کاملا درست کار میکنه. شش ماه بود دنبال حل این مشکل بودم. واقعا عالی نوشته بودی.
امتحانش کردم. در هر دو حالت کاملا درست جواب میده.
خیلی خیلی خیلی .... ممنون
خواهش می کنم، حالا من یک چند روزی منتظر می مونم تا شما کامل تستش کنی ... اگر مشکلات غیرمنتظره نداشت (که احتمالا نداره) تو همین تاپیک لطفا بگو که من برم به دنبال انتشار نسخه جدیدش.
پیشنهاد می کنم به جای این :
yourblog.example.com/?random&random_cat_id=X
اینطوری باشه :
yourblog.example.com/?random&cat_id=X
navid گفت:
پیشنهاد می کنم به جای این :
yourblog.example.com/?random&random_cat_id=X
اینطوری باشه :
yourblog.example.com/?random&cat_id=X
ممنون نوید جان.
دلیلش این که این انتخاب رو نداشتم، قاطی نشدن با اسم متغیرهایی بود که خود وردپرس یا افزونه های دیگه استفاده می کنند، بود.
اين دستورات كجا بكار ميره ؟
يه توضيح ميديد ؟