رفتن به مطلب

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

با سلام خدمت اساتید محترم

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

برای نمایش محصولات یک پست تایپ سفارشی به نام product ایجاد کردم برای این پست تایپ یک taxonomy انحصاری مانند category وردپرس ثبت کرده ام.

برای ساخت صفحات قالب بر اساس درخواست مشتری نیاز به شبیه سازی این صفحات دارم. بدین صورت که در یک صفحه، لینک و عنوان دسته بندی های taxonomy مادر رو نشون بدم و پس از کلیک بر روی دسته بندی، زیر شاخه های این دسته بندی نمایش داده بشه به همین ترتیب تا در نهایت در آخرین زیر شاخه custom taxonomy، محصولات اون دسته بندی نمایش داده بشه.

دقیقا مطابق لینک های زیر:

 

قسمت اول (محصولات نمایندگی زیمنس)

 

زیر شاخه دوم

 

زیر شاخه سوم (single-product.php)

 

ممنون میشم راهنمایی بفرمائید. در ضمن بهترین کد برای افزودن پشتیبانی از thumbnail برای دسته بندی های وردپرس چیست!؟

 

پ.ن: استادان گرامی و دوستان عزیز، لطفاً فقط کد و یا الگوریتم پیاده سازی را معرفی نمائید و از معرفی افزونه خودداری فرمائید.

با تشکر و سپاس فراوان 

لینک به ارسال

سلام ، با کدی که فرستادم میتونید همه ی دسته ها تو سطح اول و بگیرید.

$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>";
     }

 

لینک به ارسال

خیلی ممنون، لطف کردید.

حالا سوال من این هست، اینکه من برای این قسمت سایت یک page template  بسازم و لینکش رو استاتیک در جاهایی که قرار بدم، آیا کار استانداردی هست؟!

دوم اینکه ممنون میشم بابت نمایش thumbnail برای دسته بندی ها هم راهنمایی بفرمائید.

لینک به ارسال
در 5 دقیقه قبل، amirhosein-wp گفته است :

خیلی ممنون، لطف کردید.

حالا سوال من این هست، اینکه من برای این قسمت سایت یک page template  بسازم و لینکش رو استاتیک در جاهایی که قرار بدم، آیا کار استانداردی هست؟!

دوم اینکه ممنون میشم بابت نمایش thumbnail برای دسته بندی ها هم راهنمایی بفرمائید.

بستگی به نیازتون داره ک بخواین این دسته ها رو کجا نمایش بدین، معمولا میزارن تو سایدبار و اون سایدبارو تو صفحاتی ک میخوان فراخونی میکنن، مثل صفحه ی آرشیو.

منظورتون از سوال دوم اینه که میخواین دسته بندی هاتون عکس داشته باشه؟

لینک به ارسال
در 4 دقیقه قبل، Ghasemi گفته است :

بستگی به نیازتون داره ک بخواین این دسته ها رو کجا نمایش بدین، معمولا میزارن تو سایدبار و اون سایدبارو تو صفحاتی ک میخوان فراخونی میکنن، مثل صفحه ی آرشیو.

منظورتون از سوال دوم اینه که میخواین دسته بندی هاتون عکس داشته باشه؟

سلام مجدد...

 

بله، دسته بندی ها عکس داشته باشه

 

لینک به ارسال

این کدو تو فایل فانکشن تون قرار بدین

 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 ، توی کدی که فرستادم باید اسم تاکسونامی تون و بزارید.

لینک به ارسال

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

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

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

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

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

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

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

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

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