amirhosein-wp 39 ارسال شده در مهر 97 گزارش بازنشر ارسال شده در مهر 97 با سلام خدمت اساتید محترم بنده در حال طراحی یک قالب شرکتی و نمایش محصول برای وردپرس هستم. برای نمایش محصولات یک پست تایپ سفارشی به نام product ایجاد کردم برای این پست تایپ یک taxonomy انحصاری مانند category وردپرس ثبت کرده ام. برای ساخت صفحات قالب بر اساس درخواست مشتری نیاز به شبیه سازی این صفحات دارم. بدین صورت که در یک صفحه، لینک و عنوان دسته بندی های taxonomy مادر رو نشون بدم و پس از کلیک بر روی دسته بندی، زیر شاخه های این دسته بندی نمایش داده بشه به همین ترتیب تا در نهایت در آخرین زیر شاخه custom taxonomy، محصولات اون دسته بندی نمایش داده بشه. دقیقا مطابق لینک های زیر: قسمت اول (محصولات نمایندگی زیمنس) زیر شاخه دوم زیر شاخه سوم (single-product.php) ممنون میشم راهنمایی بفرمائید. در ضمن بهترین کد برای افزودن پشتیبانی از thumbnail برای دسته بندی های وردپرس چیست!؟ پ.ن: استادان گرامی و دوستان عزیز، لطفاً فقط کد و یا الگوریتم پیاده سازی را معرفی نمائید و از معرفی افزونه خودداری فرمائید. با تشکر و سپاس فراوان نقل قول لینک به ارسال
Ghasemi 85 ارسال شده در مهر 97 گزارش بازنشر ارسال شده در مهر 97 سلام ، با کدی که فرستادم میتونید همه ی دسته ها تو سطح اول و بگیرید. $terms = get_terms( array( 'taxonomy' => '$taxonomy', 'hide_empty' => false, 'parent' => 0 ) ); و با این کد ، دسته ها و زیردسته ها رو نمایش میده foreach($terms as $term){ echo "<li><a href='".get_term_link( $term->term_id,'$taxonomy' )."'>$term->name</a>"; $chterms = get_terms( array( 'taxonomy' => 'product_cat', 'hide_empty' => false, 'parent' => $term->term_id ) ); if($chterms){ echo "<ul class='child'>"; foreach($chterms as $ch){ echo "<li ><a href='".get_term_link( $ch->term_id,'$taxonomy' )."'>$ch->name</a></li>"; } echo "</ul>"; } } echo "</li>"; } 4 نقل قول لینک به ارسال
amirhosein-wp 39 ارسال شده در مهر 97 مالک گزارش بازنشر ارسال شده در مهر 97 خیلی ممنون، لطف کردید. حالا سوال من این هست، اینکه من برای این قسمت سایت یک page template بسازم و لینکش رو استاتیک در جاهایی که قرار بدم، آیا کار استانداردی هست؟! دوم اینکه ممنون میشم بابت نمایش thumbnail برای دسته بندی ها هم راهنمایی بفرمائید. نقل قول لینک به ارسال
Ghasemi 85 ارسال شده در مهر 97 گزارش بازنشر ارسال شده در مهر 97 در 5 دقیقه قبل، amirhosein-wp گفته است : خیلی ممنون، لطف کردید. حالا سوال من این هست، اینکه من برای این قسمت سایت یک page template بسازم و لینکش رو استاتیک در جاهایی که قرار بدم، آیا کار استانداردی هست؟! دوم اینکه ممنون میشم بابت نمایش thumbnail برای دسته بندی ها هم راهنمایی بفرمائید. بستگی به نیازتون داره ک بخواین این دسته ها رو کجا نمایش بدین، معمولا میزارن تو سایدبار و اون سایدبارو تو صفحاتی ک میخوان فراخونی میکنن، مثل صفحه ی آرشیو. منظورتون از سوال دوم اینه که میخواین دسته بندی هاتون عکس داشته باشه؟ 2 نقل قول لینک به ارسال
amirhosein-wp 39 ارسال شده در مهر 97 مالک گزارش بازنشر ارسال شده در مهر 97 در 4 دقیقه قبل، Ghasemi گفته است : بستگی به نیازتون داره ک بخواین این دسته ها رو کجا نمایش بدین، معمولا میزارن تو سایدبار و اون سایدبارو تو صفحاتی ک میخوان فراخونی میکنن، مثل صفحه ی آرشیو. منظورتون از سوال دوم اینه که میخواین دسته بندی هاتون عکس داشته باشه؟ سلام مجدد... بله، دسته بندی ها عکس داشته باشه نقل قول لینک به ارسال
Ghasemi 85 ارسال شده در مهر 97 گزارش بازنشر ارسال شده در مهر 97 این کدو تو فایل فانکشن تون قرار بدین if ( ! class_exists( 'CT_TAX_META' ) ) { class CT_TAX_META { public function __construct() { } // Initialize the class and start calling our hooks and filters public function init() { add_action( 'category_add_form_fields', array ( $this, 'add_category_image' ), 10, 2 ); add_action( 'created_category', array ( $this, 'save_category_image' ), 10, 2 ); add_action( 'category_edit_form_fields', array ( $this, 'update_category_image' ), 10, 2 ); add_action( 'edited_category', array ( $this, 'updated_category_image' ), 10, 2 ); add_action( 'admin_enqueue_scripts', array( $this, 'load_media' ) ); add_action( 'admin_footer', array ( $this, 'add_script' ) ); } public function load_media() { wp_enqueue_media(); } // Add a form field in the new category page public function add_category_image ( $taxonomy ) { ?> <div class="form-field term-group"> <label for="category-image-id"><?php _e('Image', 'Personal-blog'); ?></label> <input type="hidden" id="category-image-id" name="category-image-id" class="custom_media_url" value=""> <div id="category-image-wrapper"></div> <p> <input type="button" class="button button-secondary ct_tax_media_button" id="ct_tax_media_button" name="ct_tax_media_button" value="<?php _e( 'Add Image', 'Personal-blog' ); ?>" /> <input type="button" class="button button-secondary ct_tax_media_remove" id="ct_tax_media_remove" name="ct_tax_media_remove" value="<?php _e( 'Remove Image', 'Personal-blog' ); ?>" /> </p> </div> <?php } //Save the form field public function save_category_image ( $term_id, $tt_id ) { if( isset( $_POST['category-image-id'] ) && '' !== $_POST['category-image-id'] ){ $image = $_POST['category-image-id']; add_term_meta( $term_id, 'category-image-id', $image, true ); } } // Edit the form field public function update_category_image ( $term, $taxonomy ) { ?> <tr class="form-field term-group-wrap"> <th scope="row"> <label for="category-image-id"><?php _e( 'Image', 'Personal-blog' ); ?></label> </th> <td> <?php $image_id = get_term_meta ( $term -> term_id, 'category-image-id', true ); ?> <input type="hidden" id="category-image-id" name="category-image-id" value="<?php echo $image_id; ?>"> <div id="category-image-wrapper"> <?php if ( $image_id ) { ?> <?php echo wp_get_attachment_image ( $image_id, 'thumbnail' ); ?> <?php } ?> </div> <p> <input type="button" class="button button-secondary ct_tax_media_button" id="ct_tax_media_button" name="ct_tax_media_button" value="<?php _e( 'Add Image', 'Personal-blog' ); ?>" /> <input type="button" class="button button-secondary ct_tax_media_remove" id="ct_tax_media_remove" name="ct_tax_media_remove" value="<?php _e( 'Remove Image', 'Personal-blog' ); ?>" /> </p> </td> </tr> <?php } // Update the form field value public function updated_category_image ( $term_id, $tt_id ) { if( isset( $_POST['category-image-id'] ) && '' !== $_POST['category-image-id'] ){ $image = $_POST['category-image-id']; update_term_meta ( $term_id, 'category-image-id', $image ); } else { update_term_meta ( $term_id, 'category-image-id', '' ); } } //Add script public function add_script() { ?> <script> jQuery(document).ready( function($) { function ct_media_upload(button_class) { var _custom_media = true, _orig_send_attachment = wp.media.editor.send.attachment; $('body').on('click', button_class, function(e) { var button_id = '#'+$(this).attr('id'); var send_attachment_bkp = wp.media.editor.send.attachment; var button = $(button_id); _custom_media = true; wp.media.editor.send.attachment = function(props, attachment){ if ( _custom_media ) { $('#category-image-id').val(attachment.id); $('#category-image-wrapper').html('<img class="custom_media_image" src="" style="margin:0;padding:0;max-height:100px;float:none;" />'); $('#category-image-wrapper .custom_media_image').attr('src',attachment.url).css('display','block'); } else { return _orig_send_attachment.apply( button_id, [props, attachment] ); } } wp.media.editor.open(button); return false; }); } ct_media_upload('.ct_tax_media_button.button'); $('body').on('click','.ct_tax_media_remove',function(){ $('#category-image-id').val(''); $('#category-image-wrapper').html('<img class="custom_media_image" src="" style="margin:0;padding:0;max-height:100px;float:none;" />'); }); // Thanks: http://stackoverflow.com/questions/15281995/wordpress-create-category-ajax-response $(document).ajaxComplete(function(event, xhr, settings) { var queryStringArr = settings.data.split('&'); if( $.inArray('action=add-tag', queryStringArr) !== -1 ){ var xml = xhr.responseXML; $response = $(xml).find('term_id').text(); if($response!=""){ // Clear the thumb image $('#category-image-wrapper').html(''); } } }); }); </script> <?php } } $CT_TAX_META = new CT_TAX_META(); $CT_TAX_META -> init(); } بجای category ، توی کدی که فرستادم باید اسم تاکسونامی تون و بزارید. 4 نقل قول لینک به ارسال
amirhosein-wp 39 ارسال شده در مهر 97 مالک گزارش بازنشر ارسال شده در مهر 97 ممنون، لطف کردید... سپاس 1 نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .