رفتن به مطلب

فیلتر کردن پست ها


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

سلام

خسته نباشید

من توی صفحه پست هام یه قسمت قرار دادم برای فیلتر کردن پست ها

یعنی radio botton گذاشتم بعد میخوام مثلا روی radio تفریحی کلیک کرد پست های تفریحی رو نشون بده و وقتی روی radio اخبار کلیک کرد پست های اخبار رو نشون بده

لطفا راهنمایی کنید

لینک به ارسال

الان توی نت سرچ کردم سایت زیر رو پیدا کردم :

http://itrahyaft.ir/%D9%81%DB%8C%D9%84%D8%AA%D8%B1-%D9%BE%D8%B3%D8%AA-%D9%88%D8%B1%D8%AF%D9%BE%D8%B1%D8%B3-%D8%A8%D8%B3%DB%8C%D8%A7%D8%B1-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C/

بعد حالا الان مشکلی که دارم اینه که من میخوام وقتی روی radio کلیک شد صفحه رفرش بشه و اون فیلتری که میخوام اعمال بشه!!!

یعنی در واقع فکر میکنم باید یه request بفرستم بعد وقتی روی radio کلیک شد url رو بررسی کنم که اون request رو داره یا نه اگه داشت اون فیلتر اعمال بشه

لطفا کمک کنید

لینک به ارسال

درمورد ای جکس تحقیق کنید

ajax

این روش جالبی نیست !

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

الان توی نت سرچ کردم سایت زیر رو پیدا کردم :

http://itrahyaft.ir/...-بسیار-کاربردی/

بعد حالا الان مشکلی که دارم اینه که من میخوام وقتی روی radio کلیک شد صفحه رفرش بشه و اون فیلتری که میخوام اعمال بشه!!!

یعنی در واقع فکر میکنم باید یه request بفرستم بعد وقتی روی radio کلیک شد url رو بررسی کنم که اون request رو داره یا نه اگه داشت اون فیلتر اعمال بشه

لطفا کمک کنید

اگر می خواهید از انجین خود وردپرس استفاده کنید رادیو باتون ها رو در یک فرم قرار بدید نامشون رو بگذارید cat و value هر کدام آی دی دسته بندی مورد نظرتون و یک فیلد هم با نام s کنارشون بگذارید و با متد get ارسال کنید به صفحه جاری

لینک به ارسال

اگر می خواهید از انجین خود وردپرس استفاده کنید رادیو باتون ها رو در یک فرم قرار بدید نامشون رو بگذارید cat و value هر کدام آی دی دسته بندی مورد نظرتون و یک فیلد هم با نام s کنارشون بگذارید و با متد get ارسال کنید به صفحه جاری

ممنون میشه یه نمونه ای چیزی بدین!!

لینک به ارسال

اگر می خواهید از انجین خود وردپرس استفاده کنید رادیو باتون ها رو در یک فرم قرار بدید نامشون رو بگذارید cat و value هر کدام آی دی دسته بندی مورد نظرتون و یک فیلد هم با نام s کنارشون بگذارید و با متد get ارسال کنید به صفحه جاری

الان اونچیزی که گفتین رو درست کردم و وقتی رو دکمه میزنم url به صورت زیر میشه :


localhost:81/wp/?cat=تفریحی&s=

بعد توی صفحه ی search.php نتایج رو نشون میده که من میخوام توی همون صفحه که بود نشون بده نتایج رو

و اینکه پست های اون دسته رو نشون نمیده و همه رو نشون میده

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

پس باید براش کوئری بنویسید پارامتر cat توی وردپرس تعریف شده است تغییرش بدید به مثلا catid و کوئری ای شبیه به این بنویسید

(فیلد s را هم حذف کنید )


<?php
if(isset($_GET['catid'])) {
$catid = $_GET['catid'];
$my_query(array(
'post_type' => 'post',
'cat'=> $catid,
//.....
));
//...
}

لینک به ارسال

پس باید براش کوئری بنویسید پارامتر cat توی وردپرس تعریف شده است تغییرش بدید به مثلا catid و کوئری ای شبیه به این بنویسید

(فیلد s را هم حذف کنید )


<?php
if(isset($_GET['catid'])) {
$catid = $_GET['catid'];
$my_query(array(
'post_type' => 'post',
'cat'=> $catid,
//.....
));
//...
}

الان کد رو اینجوری کردم اما باز هم نشد :


<?php
if(isset($_GET['catid'])) {
$catid = $_GET['catid'];
$my_query = new WP_Query( array(
'post_type' => 'post' ,
'cat' => $catid,
));
while( $my_query->have_posts() ) : $my_query->the_post();
?>

لینک به ارسال

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

الان کوئری رو اینطوری کردم :


if(isset($_GET['catid'])){
$catid = $_GET['catid'];
$my_custom_query= new WP_Query(array(
'post_type' => 'custom',
'post_status' => 'publish',
'cat' => $catid,
'order' => 'DESC',
'orderby' => 'modified',
'posts_per_page' =>'4',
'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1
));
if($my_custom_query->have_posts()):
while($my_custom_query->have_posts()) : $my_custom_query->the_post();?>

بعد کدی هم که برای radio ها نوشتم اینه :


<form action="" method="get">
<div class="radio_b">
<input type="radio" value="14" name="catid" id="news" />
<label for="news">اخبار</label>
</div>
<div class="radio_b">
<input type="radio" value="10" name="catid" id="fun" />
<label for="fun">تفریحی</label>
</div>
<input type="submit" value="جـستـجو" />
</form>

لینک به ارسال

با تشکر از استاد بابت پاسخ دادن.

من یک راه دیگه و ساده تر به ذهنم میرسه که میتونید امتحان کنید:

با template page یک فایل php ساده حاوی کد کوئری توی پوشه قالبتون ایجاد کنید.

یک برگه با این فایل معرفی کنید تا url ش رو به دست بیارید.

حالا با قابلیت .load جی کوئری برای اون رادیو باتن ها دستوری بنویسید یا دکمه بزارید تا روی هر کدومشون کلیک شد بره و url اون برگه رو براتون نمایش بده (بدون رفرش شدن صفحه).

موفق باشید.

لینک به ارسال

با تشکر از استاد بابت پاسخ دادن.

من یک راه دیگه و ساده تر به ذهنم میرسه که میتونید امتحان کنید:

با template page یک فایل php ساده حاوی کد کوئری توی پوشه قالبتون ایجاد کنید.

یک برگه با این فایل معرفی کنید تا url ش رو به دست بیارید.

حالا با قابلیت .load جی کوئری برای اون رادیو باتن ها دستوری بنویسید یا دکمه بزارید تا روی هر کدومشون کلیک شد بره و url اون برگه رو براتون نمایش بده (بدون رفرش شدن صفحه).

موفق باشید.

سلام

میشه یه کم واضح تر بگین

در واقع قسمت جی کوئریش رو

ممنون

لینک به ارسال

نمونه ساده :

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
$("#div1").load("url.......");
});
});
</script>
</head>
<body>

<div id="div1"><h2>Let jQuery AJAX Change This Text</h2></div>

<button>Get External Content</button>
</body>
</html>

اطلاعات بیشتر : 1 2

و html

موفق باشید.

لینک به ارسال
نمونه ساده :
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"> <script> $(document).ready(function(){ $("button").click(function(){ $("#div1").load("url......."); }); });

[b] Let jQuery AJAX Change This Text[/b]

Get External Content

اطلاعات بیشتر : 1 2 و html موفق باشید.

ممنون

الان تقریبا یه نتایجی گرفتم اما باز چندتا مشکل دارم:

1.نمیتونم تشخصی بدم که کاربر کدوم radio رو زده که بیام مطالب اون دسته رو نشون بدم

2.پست ها را 4تا 4تا نشون میده :| یعنی مثلا پست شماره یک رو 4بار تکرار میکنه ، پست شماره دو رو 4بار و ....

ممنون میشم جواب سئوالاتم رو بدین

لینک به ارسال

برای هر رادیو یک آیدی تعریف کنید و برای هرکدوم از آیدی ها یکبار کد بالا رو تکرار کنید (بخشی که مربوط به رویداد بود!)

کد نهایی که نوشتید رو بزارید.

لینک به ارسال

برای هر رادیو یک آیدی تعریف کنید و برای هرکدوم از آیدی ها یکبار کد بالا رو تکرار کنید (بخشی که مربوط به رویداد بود!)

کد نهایی که نوشتید رو بزارید.

همونکار رو کردم اما نمیشه!!

لینک به ارسال

کد radio :


<form action="" method="get">
<div class="radio_b">
<input type="radio" value="14" name="catid" id="fun" />
<label for="fun">fun</label>
</div>
<div class="radio_b">
<input type="radio" value="13" name="catid" id="news" />
<label for="news">news</label>
</div>
</form>

کد جی کوئری :


<script type="text/javascript">
$(document).ready(function(){
$("#fun").click(function(){
$(".box_products").load('http://localhost:81/wp/?page_id=151');
});
});

</script>

کد کوئری :


<?php /* Template Name: کوئری */ ?>

<?php
if(isset($_GET['catid'])){
$catid = $_GET['catid'];
$my_custom_query= new WP_Query(array(
'post_type' => 'custom',
'post_status' => 'publish',
'cat' => $catid,
'order' => 'DESC',
'orderby' => 'modified',
'posts_per_page' =>'4',
'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1
));
if($my_custom_query->have_posts()):
while($my_custom_query->have_posts()) : $my_custom_query->the_post();?>
<section class="col-md-3 float">
<div class="box_products">
<!--<div class="box_products_shadow"></div>-->
<div class="title_box_product">
<h2><?php the_title() ?></h2>
</div>
<div class="cat_box_product">
<span><?php $terms = get_the_terms($POST->ID,'product_category');
foreach ( $terms as $term ) {
echo $term->name.' « ';
} ?></span>
</div>
<div class="pic_box_product">
<?php if(has_post_thumbnail()){the_post_thumbnail("wp-thumb",array( 'class' => 'img-responsive'));} else { ?>
<img src="<?php bloginfo('template_url') ?>/img/pro.png" alt="" class="img-responsive" />
<?php } ?>
</div>
<div class="name_box_product">
<h2><?php echo $name; ?></h2>
</div>
</div>
</section>
<?php
endwhile;endif;}?>


لینک به ارسال

به این صورت با زدن هر رادیو آدرس مربوط بهش لود میشه :

<script type="text/javascript">
$(document).ready(function(){
$("#fun").click(function(){
$(".box_products").load('url1......');
});
$("#news").click(function(){
$(".box_products").load('url2....');
});
});

</script>

و

<div class="radio_b">
<input type="radio" value="14" name="catid" id="fun" />
<label for="fun">fun</label>
</div>
<div class="radio_b">
<input type="radio" value="13" name="catid" id="news" />
<label for="news">news</label>
</div>

توی این روش شما باید برای هردسته یک برگه جدا داشته باشید و کوئری ساده استفاده کنید. یعنی برای هردسته یک برگه با تمپلیت پیج بسازید.

موفق باشید.

لینک به ارسال

سلام

یه روش دیگه هم پیدا کردم میخواستم نظرتون رو بدونم!!

اینکه به تعدادی که میخوام کوئری ها رو توی یک template page بسازم بعد برای هر کردوم یه برگه بسازم به template page مرتبط بعد که لینکشون رو بدست آوردم بیام بگم وقتی روی radio 1 کلیک شد لینک x رو باز کن اگر روی radio 2 کلیک شد لینک y رو باز کن

این روش مشکلی نداره؟؟

لینک به ارسال

سلام

یه روش دیگه هم پیدا کردم میخواستم نظرتون رو بدونم!!

اینکه به تعدادی که میخوام کوئری ها رو توی یک template page بسازم بعد برای هر کردوم یه برگه بسازم به template page مرتبط بعد که لینکشون رو بدست آوردم بیام بگم وقتی روی radio 1 کلیک شد لینک x رو باز کن اگر روی radio 2 کلیک شد لینک y رو باز کن

این روش مشکلی نداره؟؟

پوزش بابت تاخیر ...

منم منظورم همین بود.

لینک به ارسال

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

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

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

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

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

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

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

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

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