omid_r 1 ارسال شده در تیر 93 گزارش بازنشر ارسال شده در تیر 93 (ویرایش شده) با سلاممن میخوام کدی در سایدبار (از طریق ابزارک ها یا داخل فایل سایدبار) قرار بدم که :1- ID دسته مطلبی که کاربر در حال مشاهده اون هست رو دریافت کرده و با استفاده از یک کوئری (یا شیوه دیگر!) عناوین دیگر مطالب آن دسته را لیست کند.به عنوان مثال برای لیست شدن عناوین مطالب یک دسته از کد زیر استفاده میکنم:function zcat_shortcode($cati) {ob_start();$custom_query = new WP_Query(array('post_status' =>'publish','post_type' =>'post','order' =>'descending','orderby' =>'ID','cat' =>'1','posts_per_page' =>'100',));if( $custom_query->have_posts() ) :while($custom_query->have_posts()) : $custom_query->the_post();?><strong><a href="<?php the_permalink() ?>" title="ادامه نوشته<?php the_title_attribute(); ?>" target="_blank"> <?php the_title(); ?> </a></strong><br /><?php PHP_EOL; ?><?phpendwhile; endif;wp_reset_query();return ob_get_clean();}add_shortcode('zcat', 'zcat_shortcode');چه دستوری باید در فایل فانکشن یا قالب سایت استفاده بشه که ID دسته مطلبی که کاربر در اون قرار داره رو به این کوئری بده ؟!1.2-(اگر امکانش هست) عنوان مطلبی که کاربر در اون قرار داره نمایش داده نشه!2- اگر کاربر در مطلبی قرار نداشت، این کد ها و لیست شدن نمایش داده نشود.اگر برای این کار از یک دستور شرط (if) در قالب (جایی که میخوام این لیست شدن انجام بشه) استفاده کنم و شرط بذارم که اگر داخل فایل single.php قرار داشت این کار رو انجام بده؛ درست و مناسبه ؟!با تشکّر ویرایش شده تیر 93 توسط omid_r نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در تیر 93 گزارش بازنشر ارسال شده در تیر 93 <?php$cats = strip_tags( get_the_category_list( ',' ) );$cats = explode( ',', $cats );if( !empty( $cats ) ){ $cat_ids = array(); foreach ( $cats as $cat ) { $term_data = get_term_by( 'name', $cat, 'category' ); $cat_ids[] = $term_data->term_id; }}//print_r($cat_ids);$cats = implode( ',', $cat_ids );$args = array( 'posts_per_page' => 10, 'post__not_in' => array( get_the_id() ), 'category' => $cat_ids , 'orderby' => 'rand');$related_query = new WP_Query( $args );if ($related_query->have_posts()) :?><?php while($related_query->have_posts()) : $related_query->the_post();?><strong><a href="<?php the_permalink() ?>" title="ادامه نوشته<?php the_title_attribute(); ?>" target="_blank"> <?php the_title(); ?> </a></strong><?phpendwhile;?> <?php else : ?> <p> مطلب مشابه پیدا نشد</p> <?php endif;wp_reset_query();?> کد را در single.php و داخل حلقه قرار بدیدبرای استفاده در سایدبار اولا باید کدنویسی باقی بخش های قالب سالم باشه و کوئری ای باز نمونده باشه در ثانی کد را داخل <?php if(is_single()) : ?><!-- محل کدها --><?php endif;?>قرار بدید 2 نقل قول لینک به ارسال
omid_r 1 ارسال شده در تیر 93 مالک گزارش بازنشر ارسال شده در تیر 93 (ویرایش شده) کد را در single.php و داخل حلقه قرار بدید1- منظورتون از حلقه چی هست ؟!چون الآن اونطور که از کد معلومه برای نمایش عنوان نوشته ها کد داخل حلقه while قرار گرفته!منظورتون حلقه دیگری هست ؟!برای استفاده در سایدبار اولا باید کدنویسی باقی بخش های قالب سالم باشه و کوئری ای باز نمونده باشه در ثانی کد را داخل ... قرار بدید2- کدهای قالب سالم هستند ولی از کجا باید بفهمم که هیچ کوئری ای باز نمونده ؟!3- برای نمایش نوشته ها بر اساس تاریخ و از قدیم به جدید (اولین عنوان قدیمی ترین ارسال در اون دسته باشه!) باید به جای کد'orderby' => 'rand'کد'order' =>'descending','orderby' =>'date',رو قرار بدم ؟!4- وقتی کد شما (بدون تغییر!) رو استفاده میکنم، عنوان تمامی مطالب رو نمایش و لینک میده!(البته به جز همون مطلبی که داخل قرار دارم ...)مشکل از کجا میتونه باشه ؟با تشکّر ویرایش شده تیر 93 توسط omid_r نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در تیر 93 گزارش بازنشر ارسال شده در تیر 93 حلقه ی while حاضر حلقه ی کوئری کل این کوئری باید در داخل حلقه ی while فایل single.php اجرا بشه / باید تست کنید اگر در سایدبار درست نشون داد کوئری باز ندارید ولی اگر درست نشون نداد دارید / برای نمایش نوشته ها بر اساس تاریخ این را جایگزین کنید 'order' => 'DESC', / کد را داخل حلقه چک کنید اگر درست اجرا شدئ و در سایدبار مشکل باقی بود کوئری باز دارید 2 نقل قول لینک به ارسال
omid_r 1 ارسال شده در تیر 93 مالک گزارش بازنشر ارسال شده در تیر 93 (ویرایش شده) با عرض پوزش؛ مورد حلقه رو هنوز نفهمیدم!یعنی نفهمیدم چطور باید قرار بگیره!کد های فایل single ، با قرار دادن کدهایی که شما دادید (بدون تعریف حلقه)، در زیر قابل مشاهده است:<?php get_header(); ?><div class="column-one"><?php if (have_posts()) : while (have_posts()) : the_post(); ?><article><header class="clearfix"> <ul class="meta"> <li><span class="categories"><?php the_category(', '); ?></span></li> <li><span class="comments"><?php comments_popup_link(__('0', 'site5framework'), __('1', 'site5framework'), __('%', 'site5framework')); ?> </span></li> <li><span class="tags"><?php the_tags('') ?></a> </ul></header><?php if(has_post_thumbnail() and get_post_meta($post->ID, 'featured-img') ):?><a href="<?php echo get_post_meta($post->ID, 'featured-img', true);?>" rel="lightbox" ><?php the_post_thumbnail('thumbnail', array('class'=>'blog-thumb'));?></a><?php elseif(has_post_thumbnail()):?><?php the_post_thumbnail('thumbnail', array('class'=>'blog-thumb'));?><?php endif; ?><div class="blog-entry"> <h2 class="post-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2></div><span class="clearfix"></span><?php the_content(); ?><?php endwhile; ?></article><?php else: ?><article><div class="blog-entry"> <h2 class="post-title"><?php _e("هنوز نوشتهای منتشر نشده است", "site5framework"); ?></h2> <div id="post-content"> <p><?php _e("متاسفیم، شما دنبال چیزی میگردید که اینجا نیست.", "site5framework"); ?></p> </div></div></article><?php endif; ?></div><div class="column-two"><?php get_sidebar('primary'); ?><?php if(is_single()) : ?><?php$cats = strip_tags( get_the_category_list( ',' ) );$cats = explode( ',', $cats );if( !empty( $cats ) ){$cat_ids = array();foreach ( $cats as $cat ) {$term_data = get_term_by( 'name', $cat, 'category' );$cat_ids[] = $term_data->term_id;}}//print_r($cat_ids);$cats = implode( ',', $cat_ids );$args = array('posts_per_page' => 10,'post__not_in' => array( get_the_id() ),'category' => $cat_ids ,'orderby' => 'DESC');$related_query = new WP_Query( $args );if ($related_query->have_posts()) :?><?php while($related_query->have_posts()) : $related_query->the_post();?><strong><a href="<?php the_permalink() ?>" title="ادامه نوشته <?php the_title_attribute(); ?>" target="_blank"> <?php the_title(); ?> </a></strong><br /><?phpendwhile;?><?php else : ?><p>مطلب مشابه پیدا نشد</p><?phpendif;wp_reset_query();?><?php endif;?></div><!-- end #column-two --><?php get_footer(); ?>1- اگر لطف کنید در مورد همین حلقه یه راهنمایی بکنید، ممنون میشم ...هنوز هم وقتی کد رو قرار میدم (یا به عبارتی همین کدهای بالا!) تمامی مطالب رو لیست میکنه و فقط مطالب دسته مربوط به مطلب در حال مشاهده نیست!(من میخوام فقط مطالب مربوط به همون دسته باشه!)2- با قرار دادن کد مرتب سازی بر اساس تاریخ، مطالب، جدید به قدیم (بالا به پایین) مرتب شدند.برای مرتب سازی به صورت قدیم به جدید (بالا به پایین) چه چیزی باید تعریف بشه ؟!(یعنی اولین عنوان قدیمی ترین مطلب در اون دسته و آخرین عنوان، جدیدترین مطلب در اون دسته باشه!)تشکّر ویرایش شده تیر 93 توسط omid_r نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .