رفتن به مطلب

جستجوی شرطی پست تایپ


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

سلام

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


<form method="get" id="searchform" action="<?php echo esc_url( home_url( '/') ); ?>">
<ul>
<li>
<input type="text" class="search-input" name="s" placeholder="کلمه مورد نظر خود را وارد كنيد" />
<input type="hidden" value="" name="cat"/>
<input type="hidden" value="" name="post_type" value="<?php $discoPeople ?>"/>
</li>
<li>
<?php wp_dropdown_categories( $args ); ?>
</li>
<li>
<input type="submit" name="submit" class="search-botton" value="" />
</li>
</form>[/size]
[size=5]

و آرگومان های فهرست پایین افتادنی:


$args = array(
'show_option_all' => 'All Catagories',
'show_option_none' => '',
'orderby' => 'ID',
'order' => 'ASC',
'show_count' => 1,
'hide_empty' => 0,
'child_of' => 0,
'exclude' => '1,5',
'echo' => 1,
'selected' => 0,
'hierarchical' => 0,
'name' => 'cat',
'id' => '',
'class' => 'postform',
'depth' => 1,
'tab_index' => 0,
'taxonomy' => 'download_category',
'hide_if_empty' => false,
);

خب حالا من اگر بخوام بهش بفهمونم اگر دسته ای انتخاب شد جستجو رو از پست تایپ download انجام بده، از چه دستور شرطی ای باید استفاده کنم؟

ممنون از راهنمایی

لینک به ارسال

سلام ، ابتدا میخوام که لطفاً به فونت نوشته دست نزنید چون باعث خسته شدن چشم میشه (جزو قوانینم هست)

queried object دسته بندی رو بگیرید و به وسیله یک شرط مشخص کنید که:

if( $queried_cat == 'فلان-دسته-بندی' ) {
$post_type = 'custom-post-type' }

و حالا به $args اضافه کنید:

    'post_type' => $post_type,

اینجوری اگر دسته بندی انتخاب شده فلان دسته بندی باشه ، مقدار $post_type تبدیل میشه به custom-post-type و خودتون میتونین else رو انتخاب کنید که در غیر اینصورت چی نمایش داده بشه.

موفّق باشید.

لینک به ارسال

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

جناب کد اصلا جواب نمیده. بازم Not found میده. پایان نشانی به همین شکل در میاد:


?s=&cat=&cat=3&submit=

لینک به ارسال
در وهله اول پوزش میخوام برای این که فونت رو بزرگ کردم. جناب کد اصلا جواب نمیده. بازم Not found میده. پایان نشانی به همین شکل در میاد:
 ?s=&cat=&cat=3&submit= 

خب شما نگفته بودید که فرم خرابه ، گفته بودید شرط رو چجوری قرار بدم که من اونجوری گفتم براتون.

?s=&cat=&cat=3&submit=

1: توی این آدرس از 2 تا cat نامبرده شده که باید یکی میبود

2: چیزی سرچ نشده که

3: مقدار submit هم خالیه... البتّه 2 مورد بالا مهم هستن

_

cat خالیه اوّل به این دلیل هست فکر کنم که یه اینپوت hidden دارین با نام cat

<input type="hidden" value="" name="cat"/>

فرم زیر رو یه تست بکنید (اگر نشد آدرس آنلاین قرار بدید تا رفعش کنیم):

‌<form method="get" id="searchform" action="<?php echo esc_url( home_url( '/') ); ?>">
<ul>
<li>
<input type="text" class="search-input" name="s" placeholder="کلمه مورد نظر خود را وارد كنيد" />
<input type="hidden" value="" name="post_type" value="<?php $discoPeople ?>"/>
</li>
<li>
<?php wp_dropdown_categories( $args ); ?>
</li>
<li>
<input type="submit" name="submit" class="search-botton" value="جستجو" />
</li>
</form>

لینک به ارسال

سپاس از شما

بله مشکل دسته بندی دوم دقیقا از همون ورودی پنهان دوم بود که برداشتمش و به جای cat در ورودی پنهان اصلی همون post_type شما رو نوشتم.

با مطالعه چند نوشته پیرامون همین موضوع کدهای رو به شکل زیر دگرگون کردم:


<?php
$args = array(
'show_option_all' => 'All Catagories',
'show_option_none' => '',
'orderby' => 'ID',
'order' => 'ASC',
'show_count' => 1,
'hide_empty' => 0,
'child_of' => 0,
'exclude' => '',
'echo' => 1,
'selected' => 0,
'hierarchical' => 0,
'name' => 'cat',
'id' => '',
'class' => 'postform',
'depth' => 1,
'tab_index' => 0,
'taxonomy' => 'download_category',
'hide_if_empty' => false,
'value_field' => 'slug',
);
?>
<form method="get" id="searchform" action="<?php echo esc_url( home_url( '/') ); ?>">
<input type="text" class="search-input" name="s" placeholder="<?php echo _('looking for something?','amirLiberary'); ?>" />
<input type="hidden" value="" name="post_type"/>
<span> دسته بندی: <?php wp_dropdown_categories( $args ); ?></span>
<input type="submit" name="submit" class="search-botton" value="" />
</form>

نشانی ای که فرم به شکل خام (بدون پر کردن) با گزینش دسته بندی Books برمیگردونه اینه:


?s=&post_type=&submit=&cat=books

این نشونه خوبیه! یعنی تونستم کاری کنم که در کنار پست تایپ مثل آدم اسلاگ دسته بندی رو هم بیاره توی نشانی. الان فقط به یه ساختار شرطی نیاز دارم که بهش بفهمونم اگر دسته بندی ای غیر از All Categories گزینش کرد، مقابل post_type عبارت download رو بنویسه. یعنی برای نمونه اگر دسته بندی Books رو گزینش کردم و واژه "آب" رو جستجو کردم، نشانی به این شکل در بیاد


?s=آب&post_type=download&submit=&cat=books

خواهش می کنم باز هم راهنماییم کن.

از کمک هات خیلی ممنونم

ویرایش شده توسط DariushGreat
لینک به ارسال
سپاس از شما بله مشکل دسته بندی دوم دقیقا از همون ورودی پنهان دوم بود که برداشتمش و به جای cat در ورودی پنهان اصلی همون post_type شما رو نوشتم. با مطالعه چند نوشته پیرامون همین موضوع کدهای رو به شکل زیر دگرگون کردم:
 'All Catagories', 'show_option_none' => '', 'orderby' => 'ID', 'order' => 'ASC', 'show_count' => 1, 'hide_empty' => 0, 'child_of' => 0, 'exclude' => '', 'echo' => 1, 'selected' => 0, 'hierarchical' => 0, 'name' => 'cat', 'id' => '', 'class' => 'postform', 'depth' => 1, 'tab_index' => 0, 'taxonomy' => 'download_category', 'hide_if_empty' => false, 'value_field' => 'slug', ); ?>      دسته بندی:  

نشانی ای که فرم به شکل خام (بدون پر کردن) با گزینش دسته بندی Books برمیگردونه اینه:

 ?s=&post_type=&submit=&cat=books 

این نشونه خوبیه! یعنی تونستم کاری کنم که در کنار پست تایپ مثل آدم اسلاگ دسته بندی رو هم بیاره توی نشانی. الان فقط به یه ساختار شرطی نیاز دارم که بهش بفهمونم اگر دسته بندی ای غیر از All Categories گزینش کرد، مقابل post_type عبارت download رو بنویسه. یعنی برای نمونه اگر دسته بندی Books رو گزینش کردم و واژه "آب" رو جستجو کردم، نشانی به این شکل در بیاد

 ?s=آب&post_type=download&submit=&cat=books 

خواهش می کنم باز هم راهنماییم کن. از کمک هات خیلی ممنونم

خدمت شما:


<?php
$args = array(
'show_option_all' => 'All Catagories',
'show_option_none' => '',
'orderby' => 'ID',
'order' => 'ASC',
'show_count' => 1,
'hide_empty' => 0,
'child_of' => 0,
'exclude' => '',
'echo' => 1,
'selected' => 0,
'hierarchical' => 0,
'name' => 'cat',
'id' => '',
'class' => 'postform',
'depth' => 1,
'tab_index' => 0,
'taxonomy' => 'download_category',
'hide_if_empty' => false,
'value_field' => 'slug',
);
?>
<form method="get" id="searchform" action="<?php echo esc_url( home_url( '/') ); ?>">
<input type="text" class="search-input" name="s" placeholder="<?php echo _('looking for something?','amirLiberary'); ?>" />
<input type="hidden" value="" name="post_type" id="myposttype"/>
<span> دسته بندی: <?php wp_dropdown_categories( $args ); ?></span>
<input type="submit" name="submit" class="search-botton" value="" onclick="changePostype();"/>
</form>
<script>
function changePostype()
{
var x = document.getElementById("cat");
var selectedValue = x.options[x.selectedIndex].value;
if(selectedValue == "0")
{
document.getElementById("myposttype").value = 'download';
}
}
</script>

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

دم شما گرم

البته منظورم بر عکس این کد بود که خودم دستور شرطیشو نقیض کردم.

خیلی کمک کردی دوست من هر چی تشکر کنم کمه :wub:

مطمئنا راهنمایی هات برای بقیه هم مفید خواهد بود

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

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

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

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

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

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

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

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

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

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