رفتن به مطلب

یافتن دسته ی پستهای یافته شده از یک کوئری


sajjad_fx

پست های پیشنهاد شده

سلام و خسته نباشید.

دوستان سوالی داشتم از حضورتون. با سرچ تو نت، یک کوئری پیدا کردم که یک سری پست هایی که مد نظر من هست رو میاد و پیدا میکنه و میزاره تو یک متغیر، حالا میخواستم مثلا پستی که با این مشخصات پیدا میشه، دسته ی مربوط به اون پست رو پیدا کنم:


$query_args = array(
'post_type' => 'post',
'orderby' => 'date',
'order' => 'DESC',
'posts_per_page' => 1,
'post_status' => 'publish',
'ignore_sticky_posts' => true
);
// the query
$the_query = new WP_Query($query_args);
$result = generate_result($the_query);
$response = json_encode($result);
function generate_result($the_query) {
$result = array();
$post_id = $the_query->posts[0]->ID;
$post_date = $the_query->posts[0]->post_date;
$last_published_post = get_post((int) $_POST['lastPublishedPostID']);
$last_published_post_date = $last_published_post->post_date;
if ($post_date === $last_published_post_date) {
$result['refresh_widget'] = false;
} else if ($post_date > $last_published_post_date) {
$post_title = $the_query->posts[0]->post_title;
$post_guid = $the_query->posts[0]->guid;
$post_date_array = date_parse($the_query->posts[0]->post_date);
$post_date = date("F", mktime(0, 0, 0, $post_date_array['month'], 10)) . ' ' . $post_date_array['day'] . ', ' . $post_date_array['year'];
$result = array(
'refresh_widget' => true,
'post_action' => 'add',
'post_data' => array(
'id' => $post_id,
'title' => $post_title,
'guid' => $post_guid,
'date' => $post_date,

)
);
} else if ($post_date < $last_published_post_date) {
$result = array(
'refresh_widget' => true,
'post_action' => 'remove',
'post_data' => array(
'id' => $post_id,
)
);
}
return $result;
}

من از این کد استفاده کردم، ولی نتیجه نداد:


[left]$post_category = get_the_category( $post_id );

[/left]

سپاس

ویرایش شده توسط sajjad_fx
لینک به ارسال

خروجی تابع آرایه هست

http://codex.wordpress.org/Function_Reference/get_the_category

با حلقه میتوانید مشخصات دسته‌ها را بدست بیارید

لینک به ارسال

خروجی تابع آرایه هست

http://codex.wordpre...et_the_category

با حلقه میتوانید مشخصات دسته‌ها را بدست بیارید

سلام مرسی پارسا جان، صفحه ی معرفی شده رو مطالعه کردم

ولی متاسفانه هنوز متوجه نشدم که چطور باید این کار رو انجام بدم، من میخوام با مشخصاتی که تو متغیر $query_args هست، یک سری پست پیدا کنم و بزارم تو متغیر $the_query که تا اینجا درست و انجام میشه.

حالا با دستوراتی که بالا ذکر کردم میام آی دی پست مورد نظر رو پیدا میکنم و میزارم تو متغیر $post_id همینطور تاریخ، عنوان و آدرس رو پیدا میکنم و میزارم تو متغیر های

$post_date

$post_title

$post_guid

حالا نمیدونم چطور باید دسته ی مربوط به اون پست رو پیدا کنم، از این دستور استفاده کردم:


<?php get_the_category( $post_id ); ?>

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

برای همین از این دستور استفاده میکنم:


'post_data' => array(
'id' => $post_id,
'title' => $post_title,
'guid' => $post_guid,
'date' => $post_date,
'category' => $post_category,

$post_category = get_the_category( $post_id );

که وقتی توی کد جاوا اسکریپت ازش استفاده میکنم خطا میده:


html = '<li id="' + response.post_data.id + '" class="new-news">';
html += '<a href="' + response.post_data.guid + '">' + response.post_data.title + '</a>';
html += response.post_data.category ;

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

[object Object]

ویرایش شده توسط sajjad_fx
لینک به ارسال

سلام

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

بسیار سپاس گذارم

لینک به ارسال

سلام مجدد

با سرچی که انجام دادم متوجه شدم دلیل اینکه دسته ی پست رو در خروجی جاوا بصورت [object Object] نشون میده اینه که اون ورودی که بهش معرفی شده بصورت آبجکت هست، ممنون میشم راهنمایی بفرمایید که اولا چطور دسته ی پست رو تشخیص بدم و داخل یک متغیر قرار بدم، و ثانیا با چه دستوری در جاوا اسکریپت میتونم نام دسته رو که به صفحه ی دسته لینک شده رو نشون بدم، مثل حالت معمولی که از کد زیر تو وردپرس استفاده میکنیم و دسته رو بصورت لینک دار نشون میده...

<?php get_the_category( $post_id ); ?>

سپاسگذارم که باعث حل مشکل خلق الله میشید.

یا علی

لینک به ارسال

سلام استاد فخار

مرسی از پاسختون

استاد من با این دستور دسته رو پیدا میکنم و میزارم تو یه آرایه:


while ($the_query->have_posts()) : $the_query->the_post();
$cate = get_the_category();
$post_category = $cate[0];
endwhile;
$result = array(
'post_data' => array(
'id' => $post_id,
'title' => $post_title,
'guid' => $post_guid,
'date' => $post_date,
'category' => $post_category,
)

ولی وقتی که توی جاوا اسکریپت از کد زیر استفاده میکنم :


html += response.post_data.category ;

چیزی که بعنوان خروجی نشون میده این هست:


[object Object]

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


html = response.post_data.id ;
html += '<a href="' + response.post_data.guid + '">' + response.post_data.title + '</a></div>';

بنظرتون مشکل از کجاست؟

لینک به ارسال

مشکلی نیست فقط خود category هم یک آرایه است باید مشخص کنید چه چیزیش رو می خواهید

ID

name

slug

...

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...