• اطلاعیه ها

    • 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  
Anisi

جستجو در فیلدهای اضافی

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

ارسال شده در (ویرایش شده)

سلام به دوستان

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

کد به صورت زیر هست:


$args = array();
$args['post_type'] = 'post';
$args['cat'] = 1;
if(!empty($_GET['dname']) or !empty($_GET['dlname']) or !empty($_GET['specialty']))
{
$args['meta_query'] = array();
if(!empty($_GET['dname']))
{
$name = esc_attr($_GET['dname']);
$args['meta_query'][] = array(
'key' => 'doctor_name',
'value' => $name,
'compare' => 'LIKE'
);
}
if(!empty($_GET['dlname']))
{
$lname = esc_attr($_GET['dlname']);
$args['meta_query'][] = array(
'key' => 'doctor_lname',
'value' => $lname,
'compare' => 'LIKE'
);
}
if(!empty($_GET['specialty']))
{
$spe_all = array();
foreach($_GET['specialty'] as $spe)
{
$spe_all[] = esc_attr($spe);
}
$args['meta_query'][] = array(
'key' => 'doctor_specialty',
'value' => $spe_all,
'compare' => 'IN'
);
}
}
$the_query = new WP_Query($args);

نمونه اجرا شدش رو هم می تونید توی آدرس زیر ببینید:

http://www.bezeshk.c...سته/پزشکان-یزد/

حالا مثلا این مشکلی هست که مقدار ورودی از get رو با تابع esc_attr، eascape کردم؟

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

لطفا اگر اشکال دیگه ای بود حتما گوشزد کنید.

ممنون

ویرایش شده در توسط Anisi
2

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


لینک به پست

نکته ای که در استفاده از متاکوئری مهم هست مشخص کردن نوع پست هست که شما رعایت کردید

اسکیپ کردن مشکلی ندارد. هر چند خود وردپرس احمالا چنین کاری رو انجام میده

دوبار؟ منظورتون صفحه بندی هست. شما باید مقدار page رو هم تنظیم کنید

3

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


لینک به پست

ارسال شده در (ویرایش شده)

نکته ای که در استفاده از متاکوئری مهم هست مشخص کردن نوع پست هست که شما رعایت کردید

اسکیپ کردن مشکلی ندارد. هر چند خود وردپرس احمالا چنین کاری رو انجام میده

دوبار؟ منظورتون صفحه بندی هست. شما باید مقدار page رو هم تنظیم کنید

ممنون

بله! اگر مشاهده کرده باشید، برای نتایج دو صفحه اومده، ولی نتایج هر دو صفحه یکسان هست! کد زیر رو هم به کوئری اضافه کردم ولی هنوز مشکل پابرجاست:


$args['posts_per_page']= 15;

ویرایش شده در توسط Anisi
0

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


لینک به پست
2

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


لینک به پست

ممنون

مشکل حل شد ولی یک مشکل دیگه هست. وقتی جستحو انجام میشه، 2 صفحه میاره! در حالی که صفحه دوم خالیه.

0

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


لینک به پست

از افزونه واسه صفحه بندی استفاده میکنید؟

بهتره قبل از کوئری ریست رو قرار دهید

1

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


لینک به پست

از افزونه واسه صفحه بندی استفاده میکنید؟

بهتره قبل از کوئری ریست رو قرار دهید

نه. از این تابع استفاده می کنم:


//Navigation Function
function wp_corenavi() {
global $wp_query, $wp_rewrite;
$pages = '';
$max = $wp_query->max_num_pages;
if (!$current = get_query_var('paged')) $current = 1;
$a['base'] = str_replace(999999999, '%#%', get_pagenum_link(999999999));
$a['total'] = $max;
$a['current'] = $current;

$total = 1; //1 - display the text "Page N of N", 0 - not display
$a['mid_size'] = 10; //how many links to show on the left and right of the current
$a['end_size'] = 1; //how many links to show in the beginning and end
$a['prev_text'] = 'صفحه قبل'; //text of the "Previous page" link
$a['next_text'] = 'صفحه بعد'; //text of the "Next page" link

if ($max > 1) echo '<div class="pagination">';
if ($total == 1 && $max > 1) $pages = '<span class="pages">صفحه ' . $current . ' از ' . $max . '</span>'."\r\n";
echo $pages . paginate_links($a);
if ($max > 1) echo '</div>';
}

ریست رو هم قرار دادم. تفاوتی نکرد. اصلا نباید صفحه دومی رو بیاره، نمی دونم چرا میاره!

0

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


لینک به پست

من جای شما بودم کمتر از wp_query استفاده میکردم و بیشتر از query_posts استفاده میکردم

1

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


لینک به پست

ارسال شده در (ویرایش شده)

من جای شما بودم کمتر از wp_query استفاده میکردم و بیشتر از query_posts استفاده میکردم

آخه یه جایی خوندم نوشته بود از این استفاده کنید بهتره.

ممنون درست شد. پس کد کامل شده به صورت زیر هست:


<?php
$args = array();
$args['post_type'] = 'post';
$args['cat'] = 17;
$args['paged'] = (get_query_var('paged')) ? get_query_var('paged') : 1;
if(!empty($_GET['dname']) or !empty($_GET['dlname']) or !empty($_GET['specialty']))
{
$args['meta_query'] = array();
if(!empty($_GET['dname']))
{
$name = esc_attr($_GET['dname']);
$args['meta_query'][] = array(
'key' => 'doctor_name',
'value' => $name,
'compare' => 'LIKE'
);
}
if(!empty($_GET['dlname']))
{
$lname = esc_attr($_GET['dlname']);
$args['meta_query'][] = array(
'key' => 'doctor_lname',
'value' => $lname,
'compare' => 'LIKE'
);
}
if(!empty($_GET['specialty']))
{
$spe_all = array();
foreach($_GET['specialty'] as $spe)
{
$spe_all[] = esc_attr($spe);
}
$args['meta_query'][] = array(
'key' => 'doctor_specialty',
'value' => $spe_all,
'compare' => 'IN'
);
}
}
query_posts($args);
?>

ویرایش شده در توسط Anisi
0

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


لینک به پست

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

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

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

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


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

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

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


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