Siaavash

عضو سایت
  • تعداد ارسال ها

    38
  • تاریخ عضویت

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

اعتبار در انجمن

2

درباره Siaavash

  • درجه
    تازه کار

اطلاعات شخصی

  • جنسیت
  • آشنایی با وردپرس
  • سطح برنامه نویسی
  • آشنایی با طراحی
  1. راه حل رفع این مورد به چه صورته؟
  2. مشکل رو از طریق کد زیر حل کردم: <?php if ( have_posts() ) : ?> <header> <h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1> </header> <?php /* Start the Loop */ while ( have_posts() ) : the_post(); $last_post = reset($wp_query->posts); if ($last_post->ID == $post->ID) { get_template_part( 'template-parts/content-first', get_post_format() ); get_template_part( 'template-parts/first-post-ads'); } else { get_template_part( 'template-parts/content', get_post_format() ); } endwhile; // the_posts_navigation(); the_posts_navigation(); else : get_template_part( 'template-parts/content-first', 'none' ); endif; wp_reset_postdata(); ?> یعنی با اضافه کردن کد زیر به حلقه، هم نیازم به کوئری از بین رفت، هم اینکه اون مشکل حل شد و آخرین پست ارسالی داخل صفحه رو به صورت متفاوت نمایش می ده و هم مشکل صفحه بندی از بین رفت: $last_post = reset($wp_query->posts); if ($last_post->ID == $post->ID) { get_template_part( 'قالب پست اول', get_post_format() ); } else { get_template_part( 'قالب مابقی پست ها', get_post_format() ); }
  3. کاری می خوام انجام بدم شبیه عکس زیر هست. کادر بالا پست آخر صفحه اصلی و کادرهای قرمز، پست های بعدی هستند. دو کادر کوچیک زیر پست بالا هم بنر هستند. برای این کار از کد زیر استفاده کردم: <?php $currentPage = (get_query_var('paged')) ? get_query_var('paged') : 1; $args = array('posts_per_page' => 1, 'paged' => $currentPage); query_posts($args); if ( have_posts() ) : if ( is_home() && ! is_front_page() ) : ?> <header> <h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1> </header> <?php endif; /* Start the Loop */ while ( have_posts() ) : the_post(); get_template_part( 'template-parts/content-first', get_post_format() ); endwhile; // the_posts_navigation(); get_template_part( 'template-parts/first-post-ads'); else : get_template_part( 'template-parts/content-first', 'none' ); endif; wp_reset_postdata(); $currentPage2 = (get_query_var('paged')) ? get_query_var('paged') : 1; $args1 = array('posts_per_page' => 5, 'paged' => $currentPage2); query_posts($args1); if ( have_posts() ) : if ( is_home() && ! is_front_page() ) : ?> <header> <h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1> </header> <?php endif; /* Start the Loop */ while ( have_posts() ) : the_post(); get_template_part( 'template-parts/content', get_post_format() ); endwhile; the_posts_navigation(); else : get_template_part( 'template-parts/content', 'none' ); endif; wp_reset_postdata(); ?> با این کار مشکل صفحه بندی حل شد اما مشکلی که هست اینه که وقتی این کد رو می ذارم، پست اول دوبار تکرار می شه! و وقتی توی کوئری پایین از 'offset' => 1 استفاده می کنم، صفحه های بعدی دوباره پست های صفحه اصلی رو نمایش می ده در کادرهای قرمز رنگ! چطور می تونم این سیستم رو پیاده کنم؟ راهی هست که پست آخر رو شناسایی کنه و اگر پست آخر بود یه قالب برای نمایش استفاده کنه در غیر این صورت از یه قالب دیگه؟
  4. با توجه به این مشکل و اینکه قاعدتا بعد از رفتن به صفحه دوم، دو حالت برای اون جایگاه پست (تکی بالا) وجود داره که کدوم پست رو باید نشون بده: 1- آخرین پست منتشر شده نسبت به کل نوشته های وبلاگ (یعنی آخرین پست همیشه (به صورت متفاوت) توی صفحات بعدی هم نمایش داده بشه) 2- آخرین پست منتشر شده نسبت به اون صفحه ای که داخلش هست (6پست اخیر) (یعنی توی هر صفحه از نوشته های قبلی، یک پست متفاوت، اون بالا به صورت مجزا و متفاوت نمایش داده بشه) برای هر حالت چه راه حلی پیشنهاد می شه؟
  5. مشکل صفحه بندی به خاطر استفاده از query هست. با کد زیر باید قاعدتا رفع بشه: $currentPage = (get_query_var('paged')) ? get_query_var('paged') : 1; $args = array('posts_per_page' => 3, 'paged' => $currentPage); query_posts($args); اما چون دو تا کوئری ایجاد کردم، با رفتن به صفحه دوم، فقط پست اول که بالای سایت هست و مربوط به کوئری اول، تغییر می کنه و 5 تا پست بعدی که مربوط به کوئری دوم هستند، هیچ تغییری نمی کنن!
  6. آیا این دو کوئری که بالاتر قرار دادم ایرادی داره؟ چون وقتی می زنم صفحه دوم وبلاگ رو نمایش بده، توی آدرس بار می زنه page2 اما همون صفحه اصلی و مطالب رو نشون می ده.
  7. تغییرات فراتر از استایل هست. در این صورت چطور؟ آیا راه دیگه ای هم وجود داره؟ یا این راهی که انتخاب کردم بهترین راه هست؟
  8. داخل صفحه اصلی می خوام پست آخر رو به صورت متفاوت نمایش بدم. برای این کار از دو تا query استفاده کردم به صورت زیر: <?php $query1 = new WP_Query( array( 'posts_per_page' => 1 ) ); if ( $query1->have_posts() ) : if ( is_home() && ! is_front_page() ) : ?> <header> <h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1> </header> <?php endif; /* Start the Loop */ while ( $query1->have_posts() ) : $query1->the_post(); get_template_part( 'template-parts/content-first', get_post_format() ); endwhile; // the_posts_navigation(); get_template_part( 'template-parts/first-post-ads'); else : get_template_part( 'template-parts/content-first', 'none' ); endif; wp_reset_postdata(); $query2 = new WP_Query( array( 'posts_per_page' => 5, 'offset' => 1 ) ); if ( $query2->have_posts() ) : if ( is_home() && ! is_front_page() ) : ?> <header> <h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1> </header> <?php endif; /* Start the Loop */ while ( $query2->have_posts() ) : $query2->the_post(); get_template_part( 'template-parts/content', get_post_format() ); endwhile; the_posts_navigation(); else : get_template_part( 'template-parts/content', 'none' ); endif; wp_reset_postdata(); ?> با این کار به هدفم رسیدم، اما می خوام بدونم راه دیگه ای برای این کار وجود نداره؟
  9. کسی ایده ای در این زمینه نداره؟
  10. داخل قالبی که دارم کد می کنم یک قسمت تنظیمات تعریف کردم که داخل قسمت تنظیمات بخشی برای انتخاب شبکه های اجتماعی جهت انتشار مطلب در نظر گرفتم که با انتخاب هر گزینه دکمه مخصوص اون زیر پست ها نمایش داده بشه: کد زیر رو نوشتم: function siebte_share_this () { if( is_single() ){ $options = get_option( 'post_share' ); $share = array( 'twitter', 'facebook', 'google', 'telegram', 'pinterest' ); $output = array(); foreach ( $share as $icon ) { $output[] = ( @$options[$icon] == 1 ? $icon : '' ); } if( !empty( $options[$icon] ) ) { // add_theme_support( 'post_share', $output ); $content = '<div class="siebte-share"><span class="share-icon fa fa-share-alt"></span>'; $title = get_the_title(); $permalink = get_permalink(); $twitterHandler = ( get_option('twitter_handler') ? '&amp;via='.esc_attr( get_option('twitter_handler') ) : '' ); $twitter = 'https://twitter.com/intent/tweet?text=' .$title .'&amp;url=' . $permalink . $twitterHandler .''; $facebook = 'https://www.facebook.com/sharer/sharer.php?u=' . $permalink; $google = 'https://plus.google.com/share?url=' . $permalink; $telegram = 'https://telegram.me/share/url?url=' . $permalink; $pinterest = 'https://www.pinterest.com/pin/create/button/?url=' . $permalink; $content = array($twitter, $facebook, $google, $telegram, $pinterest); $out = ''; foreach ($content as $social) { $out .= '<ul class="share-icon-single-post"><li><a href="' . $social . '" rel="nofollow" target="_blank"><span class="fa fa-twitter"></a></li></ul></div>'; } return $out; } } else { return $out; } } اما در حال حاضر زمانی که همه گزینه ها تیک زده بشه، کل بخش (آیکن ها) رو زیر پست نمایش می ده و اگر یک گزینه تیک نخورده باشه کلا نمایش نمی ده! اگر داخل کد زیر: if( !empty( $options[$icon] ) ) $icon رو پاک کنم، این بار اگر حتی یک گزینه انتخاب شده باشه کل بخش رو نمایش می ده، و اگر همه گزینه ها انتخاب نشده باشند، کل بخش رو نمایش نمی ده! اما می خوام هر گزینه ای که تیک خورد همون گزینه رو نمایش بده! برای اینکار باید چه تغییری داخل کد بالا بدم و یا اگر راه دیگه ای هست ممنون می شم راهنمایی کنید.
  11. متاباکس

    ذخیره شده و "هشدار" رو به عنوان value ذخیره کرده!
  12. متاباکس

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

    می خوام اگر این باکس تیک خورد، یه متن (هشدار) داخل پست نمایش داده بشه و اگر تیک نخورد نمایش داده نشه اون عنوان. اما با این کد هم همچنان تیک از بین نمی ره!
  14. متاباکس

    این کدیه که من قرار دادم: <td><input type="checkbox" name="show_special" <?php if( get_post_meta($post->ID,'_show_special',true)) echo 'checked'; ?> value="هشدار" /></td> این کد وقتی برقرار باشه کد زیر رو برقرار می کنه درسته؟ echo 'checked' در صورت عدم برقراری شرط چی؟!
  15. متاباکس

    الآن اگه چک باکس رو اول تیک بزنم و به روز رسانی کنم بعد بخوام تیک رو حذف کنم، نمی شه! اون قسمت چک باکس شرطش کامل و درسته؟