• اطلاعیه ها

    • Saeed Fard

      برگزاری میتاپ وردپرسی   14/08/96

      بعد از اولین دوره همایش وردپرس در ایران اگر پیگیر اخبار وردپرس بوده باشید، حتما خبر برگزاری چندین میتاپ و جلسه متعدد وردپرسی را شنیده‌اید، یکی از بحث‌های اصلی که محور اصلی این میتاپ‌ها بوده است برگزاری وردکمپ بود که به طور جدی دنبال می‌شود. این میتاپ‌ها و جلسات توسط جمعی از فعلان حوزه وردپرس در کنار وردپرس‌پارسی برگزار می‌شد و مسائل مربوط به این حیطه و از جمله وردکمپ مورد بحث قرار می‌گرفت. این بار با رایزنی‌هایی که با تیم اصلی وردپرس داشتیم در بخش دوم این رویدادها قصد داریم که میتاپ‌ها و جلسات وردپرسی را به صورت آزاد برگزار کنیم تا تمامی علاقه‌مندان و دوست‌داران وردپرس فرصت حضور داشته باشند و با گردهمایی، جامعه کاملتری از دوست داران وردپرس بسازیم و از تجربیات یکدیگر استفاده کنیم.   بدیهی است که این رویدادها با رویکرد مثبت در جهت سود رسانی به جامعه وردپرس و افراد حاضر در آن برگزار می‌شود و برای تمامی علاقه‌مندان به وردپرس است. پس اگر یک کاربر معمولی وردپرس یا یک توسعه دهنده هستید می‌توانید در این رویدادها شرکت کنید. ما در ملاقات‌هایمان از موارد مختلف و کاربردی وردپرس صحبت می‌کنیم و علاقمند به توسعه هر چه بیشتر وردپرس در ایران هستیم. ما وردپرس را دوست داریم. عضویت در این گروه برای همه افرادی که مایل به پیوستن هستند بدون در نظرگرفتن توانایی‌ها، مهارت‌ها، وضعیت مالی و یا معیارهای دیگر باز و رایگان است. فضای میتاپ‌ها و جلسات ما دوستانه و آزادنه و دور از هرگونه تبعیض و رفتارهای زننده است. بر این اساس از تمامی دوستانی که علاقه‌مند به شرکت در میتاپ‌های وردپرس هستند دعوت می‌شود تا از طریق لینک زیر در سایت میتاپ اقدام به ثبت‌نام کنند و منتظر خبرهای برگزاری جلسات در آینده باشند . لینک ثبت نام و عضویت : https://www.meetup.com/Iran-WordPress-Meetup    
    • Saeed Fard

      نسخه جدید وردپرس پارسی رونمایی شد   05/09/96

      در پنجمین سال فعالیت از وردپرس پارسی و بعد از ارائه خدمات و سرویس‌های متفاوت به جامعه وردپرس ، برآن شدیم که نسخه جدید سایت وردپرس‌پارسی را بر اساس نیازها و خدمات جدیدی که قرار است ارائه شود طراحی و رونمایی کنیم ، از این جهت امروز یک ورژن از نسخه جدید رونمایی شد. در ادامه به معرفی بخش‌های مختلف سایت می‌پردازیم.     در دوره فعالیت گروه وردپرس‌پارسی بیش از 13 افزونه مختلف به صورت رایگان از طرف گروه برای وردپرس نوشته و منتشر شد که در مجموع دارای 100هزار نصب فعال روی سایت‌های وردپرسی است و 500هزاربار از مخزن پلاگین‌های وردپرس دانلود شده‌اند. به همین دلیل قسمت اول وب‌سایت مختص معرفی افزونه‌های گروه وردپرس‌پارسی طراحی شده است که در آن لیستی کامل از افزونه‌ها به همراه توضیحات در اختیار کاربران است . روند تولید افزونه‌های رایگان در جهت توسعه و بومی‌سازی بیشتر وردپرس از طرف وردپرس پارسی ادامه دارد و بزودی افزونه‌های دیگری به آرشیو اضافه خواند شد.   گروه وردپرس‌پارسی که تا به این‌جا تمرکز بیشتر خود را روی پشتیبانی رایگان از وردپرس گذاشته بود تا مشکلات کاربران وردپرس فارسی را حل کند که حاصل این فعالیت 18 هزار کاربر در انجمن با 43 هزار موضوع و 255 هزار سوال جواب است، قرار است من بعد در عرصه آموزش وردپرس وارد شود و از تخصص اعزای گروه در این حوزه نیز استفاده کند تا مرجعی کامل، اصولی و درست برای آموزش وردپرس ایجاد شود. قسمت دوم وب‌سایت مربوط به مقالات و آموزش‌هایی است که روی وردپرس پارسی از طرف اعضای آن ارسال می‌شود.   در دنیای وردپرس اتفاقات مختلفی در حال روی دادن است که دانستن آن‌ها میتونه برای ما جالب و جذاب باشه، برگزاری وردکمپ‌ها، معرفی سرویس‌ها و خدمات جدید و ... که از جمله اخبار مهم در این حوزه می‌توان برگزاری اولین همایش وردپرس ایران در سال 93 و همایش‌های دیگر مربوط به وردپرس و معرفی سیاره وردپرس و همینطور خبر برگزاری میتاپ‌های وردپرسی در ایران اشاره کرد ، در قسمت آخر وب‌سایت به معرفی موارد این چنینی پرداخته می‌شود و همینطور گزارش‌های مرتب از فعالیت‌ها، میتاپ‌ها و رویدادهای وردپرسی در آن ارائه می‌شود .   در ادامه این فعالیت‌ها بزودی شاهد اخبار جدیدی از وردپرس‌پارسی خواهید بود. شما نیز به عنوان یکی از کاربران این جامعه وردپرسی می‌توانید ما را در توسعه هر چه بیشتر وردپرس یاری کنید. لینک مستقیم خبر : http://wp-parsi.com/wpparsi-new-version  

mehran-b

همیـار
  • تعداد ارسال ها

    1,128
  • تاریخ عضویت

  • آخرین بازدید

  • Days Won

    67

تمامی ارسال های mehran-b

  1. سلام و درود اون موردی رو که @Fara-MarZ خان گفتند انجام بدید. موفق باشید
  2. درود مجدد کد مربوط به چک باکس <label for="filter-view">مرتب سازی بر اساس بازدید</label> <input type="checkbox" id="filter-view"> کد AJAX <script> $(document).ready(function(){ $("#filter-view").change(function(){ if(this.checked) { $.ajax({ type : "GET", url : "<?php echo home_url('/'); ?>", data : { do : 'filterview' }, beforeSend : function() { $("#loading").fadeIn(); // show loading }, success : function(response) { $('#result').html(response); // change result $("#loading").fadeOut(); // hide loading } }); } }); }); </script> کد مربوط به فایل functions.php add_action('template_redirect', function() { if(isset($_GET['do']) && $_GET['do'] == "filterview") { add_filter('template_include', function() { return get_template_directory() . '/filterview.php'; }); } }); کد مربوط به فایل filterview.php $args = array( 'posts_per_page' => 10, 'post_status' => 'publish', 'ignore_sticky_posts' => 1, 'post_type' => 'design', 'meta_key' => 'the_views', 'order' => 'DESC', 'orderby' => 'meta_value_num' ); $myposts = new WP_Query($args); if(!$myposts->have_posts()) { echo "پستی وجود ندارد"; exit; } while ( $myposts->have_posts() ) { $myposts->the_post(); ?> <div class="col-md-3 col-sm-3 col-xs-3 clearfix"> <div class="box"> <div class="image clearfix"> <?php the_post_thumbnail(''); ?> </div> <h2 class="posttitle"><?php the_title(); ?></h2> </div> </div> <?php } wp_reset_postdata(); موفق باشید
  3. درود مجدد یه چک باکس بسازید. میتونید از نمونه زیر استفاده کنید. <html lang="fa-IR" dir="rtl"> <head> </head> <body> <label for="filter-view">مرتب سازی بر اساس بازدید</label> <input type="checkbox" id="filter-view"> <script> document.querySelector("#filter-view").addEventListener("change", function() { if(this.checked) alert("Checked"); }); </script> </body> </html> موفق باشید
  4. درود مجدد تنها چیز غلطی که اینجا هست پارامتر paged توی آرگومان wp_query هست. به این شکل تغییر بدید. <?php $page = get_option('posts_per_page'); $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1; $args = array('paged' => $paged, 'post_type' => 'academy', 'posts_per_page' => $page); $query = new WP_Query( $args ); if ( $query->have_posts() ) { while ($query->have_posts()) { $query->the_post(); ?> موفق باشید
  5. سلام و درود چطوری از پست تایپ academy توی برگه academy کوئری گرفتید؟ از چه کدی استفاده کردید؟
  6. درود مجدد <html lang="fa-IR" dir="rtl"> <head> <title>Select Box</title> <style> select[name=dolar], div[id^=content]:not(.active) { display: none } </style> </head> <body> <select name="main"> <option value="price" selected>جدول قیمت</option> <option value="dolar">جدول دلار</option> </select> <select name="price"> <option value="content1" selected>قیمت امروز</option> <option value="content2">قیمت دیروز</option> <option value="content3">قیمت آبان</option> <option value="content4">قیمت مهر</option> <option value="content5">قیمت شهریور</option> <option value="content6">قیمت مرداد</option> <option value="content7">قیمت تیر</option> <option value="content8">قیمت خرداد</option> <option value="content9">قیمت اردیبهشت</option> <option value="content10">قیمت فروردین</option> <option value="content11">قیمت اسفند 95</option> <option value="content12">قیمت بهمن 95</option> </select> <select name="dolar"> <option value="content13" selected>قیمت روز</option> <option value="content14">قیمت دیروز</option> <option value="content15">قیمت هفته گذشته</option> <option value="content16">قیمت ماه گذشته</option> <option value="content17">نوسانات قیمت</option> <option value="content18">قیمت سال گذشته</option> </select> <div id="content1" class="active"> نمایش جدول قیمت امروز </div> <div id="content2"> نمایش جدول قیمت دیروز </div> <div id="content3"> نمایش جدول قیمت آبان </div> <div id="content4"> نمایش جدول قیمت مهر </div> <div id="content5"> نمایش جدول قیمت شهریور </div> <div id="content6"> نمایش جدول قیمت مرداد </div> <div id="content7"> نمایش جدول قیمت تیر </div> <div id="content8"> نمایش جدول قیمت خرداد </div> <div id="content9"> نمایش جدول قیمت اردیبهشت </div> <div id="content10"> نمایش جدول قیمت فروردین </div> <div id="content11"> نمایش جدول قیمت اسفند 95 </div> <div id="content12"> نمایش جدول قیمت بهمن 95 </div> <div id="content13"> نمایش جدول دلار قیمت روز </div> <div id="content14"> نمایش جدول دلار قیمت دیروز </div> <div id="content15"> نمایش جدول دلار هفته گذشته </div> <div id="content16"> نمایش جدول دلار ماه گذشته </div> <div id="content17"> نمایش جدول دلار نوسانات </div> <div id="content18"> نمایش جدول دلار سال گذشته </div> <script> function myFunc() { var name = this.getAttribute("name"); if(name == "main") { var option = this.options; var value = option[this.selectedIndex].value; for(var i = 0; i < option.length; i++) { if(option[i].value == value) document.querySelector("select[name="+option[i].value+"]").style.display = "inline-block"; else document.querySelector("select[name="+option[i].value+"]").style.display = "none"; } var child = document.querySelector("select[name="+value+"]"); var childValue = child.options[child.selectedIndex].value; var table = document.querySelectorAll("div[id^=content]"); for(var i = 0; i < table.length; i++) { if(table[i].getAttribute("id") == childValue) document.querySelector("#"+table[i].getAttribute("id")+"").style.display = "block"; else document.querySelector("#"+table[i].getAttribute("id")+"").style.display = "none"; } } else { var table = document.querySelectorAll("div[id^=content]"); var value = this.options[this.selectedIndex].value; for(var i = 0; i < table.length; i++) { if(table[i].getAttribute("id") == value) document.querySelector("#"+table[i].getAttribute("id")+"").style.display = "block"; else document.querySelector("#"+table[i].getAttribute("id")+"").style.display = "none"; } } } var select = document.querySelectorAll("select"); for(var i = 0; i < select.length; i++) select[i].addEventListener("change", myFunc); </script> </body> </html> موفق باشید
  7. درود مجدد منظور شما اینه که از ابتدا دو سلکت باکس نمایان باشه؟ مثلا سلکت باکس اصلی روی جدول قیمت باشه و سلکت باکس دومی هم مثلا روی امروز باشه و طبیعتا جدول قیمت امروز هم در لحظه لود نمایان باشه؟ این کدهایی که فرستادید هم مربوط به سلکت باکس های دوم میشه؟
  8. درود مجدد <html lang="fa-IR" dir="rtl"> <head> <title>Select Box</title> <style> select[name=price], select[name=dolar], #content2 { display: none } </style> </head> <body> <select name="main"> <option selected disabled hidden>انتخاب جدول</option> <option value="price">جدول قیمت</option> <option value="dolar">جدول دلار</option> </select> <select name="price"> <option value="yesterday">دیروز</option> <option value="today">امروز</option> </select> <select name="dolar"> <option value="week-ago">هفته گذشته</option> <option value="now">قیمت روز</option> </select> <div id="content1"> نمایش جدول قیمت </div> <div id="content2"> نمایش جدول دلار </div> <script> document.querySelector("select[name=main]").addEventListener("change", function() { var value = this.options[this.selectedIndex].value; if(value == "price") { if(document.querySelector("select[name=dolar]").style.display != "none") document.querySelector("select[name=dolar]").style.display = "none"; document.querySelector("select[name=price]").style.display = "inline-block"; if(document.querySelector("#content2").style.display != "none") document.querySelector("#content2").style.display = "none"; document.querySelector("#content1").style.display = "block"; } else if(value == "dolar") { if(document.querySelector("select[name=price]").style.display != "none") document.querySelector("select[name=price]").style.display = "none"; document.querySelector("select[name=dolar]").style.display = "inline-block"; if(document.querySelector("#content1").style.display != "none") document.querySelector("#content1").style.display = "none"; document.querySelector("#content2").style.display = "block"; } }); </script> </body> </html>
  9. سلام و درود میتونید از کد زیر استفاده کنید البته از جی کوئری استفاده نکردم. <html lang="fa-IR" dir="rtl"> <head> <title>Select Box</title> <style> select[name=price], select[name=dolar] { display: none } </style> </head> <body> <select name="main"> <option selected disabled hidden>انتخاب جدول</option> <option value="price">جدول قیمت</option> <option value="dolar">جدول دلار</option> </select> <select name="price"> <option value="yesterday">دیروز</option> <option value="today">امروز</option> </select> <select name="dolar"> <option value="week-ago">هفته گذشته</option> <option value="now">قیمت روز</option> </select> <script> document.querySelector("select[name=main]").addEventListener("change", function() { var value = this.options[this.selectedIndex].value; if(value == "price") { if(document.querySelector("select[name=dolar]").style.display != "none") document.querySelector("select[name=dolar]").style.display = "none"; document.querySelector("select[name=price]").style.display = "inline-block"; } else if(value == "dolar") { if(document.querySelector("select[name=price]").style.display != "none") document.querySelector("select[name=price]").style.display = "none"; document.querySelector("select[name=dolar]").style.display = "inline-block"; } }); </script> </body> </html> موفق باشید
  10. کدی که ارسال کردم براتون هم تک عدد رو ساپورت میکنه هم بازه اعداد اون 10 یعنی فقط اونایی که مقدار فیلدشون 10 هست رو نشون میده و بازه ها هم که قبلا دربارش گفتم. البته اون 10 باید داخل کوتیشن باشه. <select name="filter_meta"> <option selected disabled hidden>انتخاب دسته بندی</option> <?php $meta_value = array('1-5', '6-10', '10'); foreach($meta_value as $value) { echo '<option '.selected($_GET['filter_meta'], $value).' value="' . esc_attr($value) . '">' . esc_html($value) . '</option>'; } ?> </select>
  11. خوب شما همین کد رو استفاده کن: $params['parameter'] = 'testdar;LC;' . $serial; و در خطوط قبلی متغییر serial رو مقدار دهی کن. $serial = 3; $params['parameter'] = 'testdar;LC;' . $serial; مورد ساده ایه.
  12. وقتی شما 1 تا 5 رو انتخاب میکنی میاد تمامی پست هایی که توی پست تایپ design هستن و متای کی test اشون مقدار 1 یا 2 یا 3 یا 4 یا 5 داره رو لیست میکنه. نکته شما متغییر $meta_key رو با کلید متای خودتون جایگزین نکردید مقدارش رو.
  13. درود مجدد همون کدی که توی کامنت قبلی دادم بهترین حالته. $a = '$serial'; // Output // $serial $a = "$serial"; // Output // مقدار متغییر $serial
  14. سلام و درود اون دابل کوتیشن هایی که رشته شما درونشه اون دابل کوتیشن هایی نیست که رشته های PHP درونش قرار میگیره. درستش اینه: $params['parameter'] = "testdar;LC;$serial"; موفق باشید
  15. من امکان تست خروجی ندارم. من مقدار دریافتی رو با خط فاصله از هم جدا کردم و رنج اعداد بین اون دو عدد رو در آوردم و برای هر کدومش به کوئری دستور اضافه کردم در نتیجه این موردی که میگید مشکل نیست.
  16. کوئری تولید شده توسط کد درسته ولی میشه اینم تست کرد. <?php $meta = $_GET['mymeta']; $args = array( 'posts_per_page' => 10, 'post_status' => 'publish', 'ignore_sticky_posts' => 1, 'post_type' => 'design' ); $meta_key = "test"; if(is_numeric($meta)) { $args = array_merge($args, array( 'meta_key' => $meta_key, 'meta_value' => $meta )); } else { $meta_values = array_map('intval', array_map('trim', explode("-", $meta))); $range = range($meta_values[0], $meta_values[1]); $meta_query = array( 'meta_query' => array( ) ); foreach($range as $nmeta) { $meta_query['meta_query'] = array_merge($meta_query['meta_query'], array( array( 'key' => $meta_key, 'meta_value_num' => $nmeta, 'meta_compare' => '=' ) )); } if(count($meta_query['meta_query']) > 1) $meta_query['meta_query'] = array_merge($meta_query['meta_query'], array( 'relation' => 'AND' )); $args = array_merge($args, $meta_query); } $myposts = new WP_Query($args); if(!$myposts->have_posts()) { echo "پستی وجود ندارد"; exit; } while ( $myposts->have_posts() ) { $myposts->the_post(); ?> <div class="col-md-3 col-sm-3 col-xs-3 clearfix"> <div class="box"> <div class="image clearfix"> <?php the_post_thumbnail(''); ?> </div> <h2 class="posttitle"><?php the_title(); ?></h2> </div> </div> <?php } wp_reset_postdata(); موفق باشید
  17. سلام و درود اگر خود تابع get_the_modified_date همچنان تاریخ میلادی با اعداد انگلیسی بر میگردونه کد زیر رو تست کنید. <?php echo parsidate('Y-m-d', get_the_modified_date('U')); ?> موفق باشید
  18. درود مجدد مشکلی نداره نصب میشه. my-plugin.zip موفق باشید
  19. سلام و درود <?php add_action( 'template_redirect', 'wc_custom_redirect_after_purchase' ); function wc_custom_redirect_after_purchase() { global $wp; if ( is_checkout() && ! empty( $wp->query_vars['order-received'] ) ) { wp_redirect(home_url('/your-page/')); exit; } } ?> موفق باشید
  20. درود مجدد این مورد هم ممکنه فقط کدنویسیش کمی پیچیده است. کد مربوط به ایجاد سلکت باکستون: <select name="filter_meta"> <option selected disabled hidden>انتخاب دسته بندی</option> <?php $meta_value = array('1-5', '6-10', 10); foreach($meta_value as $value) { echo '<option '.selected($_GET['filter_meta'], $value).' value="' . esc_attr($value) . '">' . esc_html($value) . '</option>'; } ?> </select> کد مربوط به فایل filtermeta.php : <?php $meta = $_GET['mymeta']; $args = array( 'posts_per_page' => 10, 'post_status' => 'publish', 'ignore_sticky_posts' => 1, 'post_type' => 'design' ); $meta_key = "test"; if(is_numeric($meta)) { $args = array_merge($args, array( 'meta_key' => $meta_key, 'meta_value' => $meta )); } else { $meta_values = array_map('intval', array_map('trim', explode("-", $meta))); $range = range(min($meta_values), max($meta_values)); $strval = array_map('strval', $range); $meta_query = array( 'meta_query' => array( ) ); foreach($strval as $nmeta) { $meta_query['meta_query'] = array_merge($meta_query['meta_query'], array( array( 'key' => $meta_key, 'value' => $nmeta ) )); } if(count($meta_query['meta_query']) > 1) $meta_query['meta_query'] = array_merge($meta_query['meta_query'], array( 'relation' => 'AND' )); $args = array_merge($args, $meta_query); } $myposts = new WP_Query($args); if(!$myposts->have_posts()) { echo "پستی وجود ندارد"; exit; } while ( $myposts->have_posts() ) { $myposts->the_post(); ?> <div class="col-md-3 col-sm-3 col-xs-3 clearfix"> <div class="box"> <div class="image clearfix"> <?php the_post_thumbnail(''); ?> </div> <h2 class="posttitle"><?php the_title(); ?></h2> </div> </div> <?php } wp_reset_postdata(); سایر کدها تغییری نخواهد داشت. موفق باشید
  21. درود مجدد یه سلکت باکس استاتیک داریم: <select name="filter_meta"> <option selected disabled hidden>انتخاب دسته بندی</option> <?php $meta_value = array(10, 15, 20, 50); foreach($meta_value as $value) { echo '<option '.selected($_GET['filter_meta'], $value).' value="' . esc_attr($value) . '">' . esc_html($value) . '</option>'; } ?> </select> کد مربوط به AJAX این میشه: <script> $(document).ready(function(){ $('select[name="filter_meta"]').change(function(){ $.ajax({ type : "GET", url : "<?php echo home_url('/'); ?>", data : { do : 'filtermeta', mymeta : $(this).val() }, beforeSend : function() { $("#loading").fadeIn(); // show loading }, success : function(response) { $('#result').html(response); // change result $("#loading").fadeOut(); // hide loading } }); }); }); </script> کد فانکشن این میشه: add_action('template_redirect', function() { if(isset($_GET['do']) && $_GET['do'] == "filtermeta") { add_filter('template_include', function() { return get_template_directory() . '/filtermeta.php'; }); } }); کد فایل filtermeta.php هم این میشه: $meta = $_GET['mymeta']; $args = array( 'posts_per_page' => 10, 'post_status' => 'publish', 'ignore_sticky_posts' => 1, 'post_type' => 'design' 'meta_key' => 'test', 'meta_value' => $meta ); $myposts = new WP_Query($args); if(!$myposts->have_posts()) { echo "پستی وجود ندارد"; exit; } while ( $myposts->have_posts() ) { $myposts->the_post(); ?> <div class="col-md-3 col-sm-3 col-xs-3 clearfix"> <div class="box"> <div class="image clearfix"> <?php the_post_thumbnail(''); ?> </div> <h2 class="posttitle"><?php the_title(); ?></h2> </div> </div> <?php } wp_reset_postdata(); موفق باشید
  22. نگاه کنید شما میخواید یه سلکت باکس درست کنید که شامل مقدارهای یه meta_key خاصه. من میخوام بدوم اون مقدارهای meta_key مربوطه چیه که میخواید توی سلکت باکس لیست بشه؟ بعد سلکت باکسی هم که ساخته میشه اصلا داینامیک نیست یعنی باید option ها رو که همون meta_value هست خودتون براش تعریف کنید.
  23. اگر با کد ایجادش کردید کدش رو بفرستید اگر با افزونه ایجادش کردید عکس بگیرید از تنظیمات فیلد و ارسال کنید.