ردود العضو

مشاهدة 5 ردود - 1 حتى 5 (من مجموع 5)
  • السلام عليكم أخي، الطريقة التي اتبعتها غير صحيحة ﻷنك ستفقد التعديلات بعد تحديث ووردبريس

    الطريقة الصحيحة هي أن تقوم بوضع هذا الكود في ملف functions.php لقالبك المفعّل

    
    add_action( 'admin_menu', 'sb_change_post_label' );
    add_action( 'init', 'sb_change_post_object' );
    /**
     * sb_change_post_label Change Post Label
     */
    public function sb_change_post_label()
    {
       global $menu;
       global $submenu;
    
       $menu[5][0]                 = 'مواضيع';
       
       if (array_key_exists('edit.php', $submenu)) {
         $submenu['edit.php'][5][0]  = 'مواضيع';
         
         if (count($submenu['edit.php']) >= 11) {
           $submenu['edit.php'][10][0] = 'أضف موضوع';
         }
    
         if (count($submenu['edit.php']) >= 17) {
           $submenu['edit.php'][16][0] = 'وسوم المواضيع';
         }
      }
    }
    
    /**
     * sb_change_post_object Change Post Object
     */
    public function sb_change_post_object()
    {
       global $wp_post_types;
        
       $labels                     = &$wp_post_types['post']->labels;
    
       $labels->name               = 'مواضيع';
       $labels->singular_name      = 'مواضيع';
       $labels->add_new            = 'أضف موضوع';
       $labels->add_new_item       = 'أضف موضوع';
       $labels->edit_item          = 'تحرير الموضوع';
       $labels->new_item           = 'موضوع جديد';
       $labels->view_item          = 'مشاهدة الموضوع';
       $labels->search_items       = 'بحث الموضوع';
       $labels->not_found          = 'لا توجد مواضيع';
       $labels->not_found_in_trash = 'لا توجد مواضيع في سلة المهملات';
       $labels->all_items          = 'كل المواضيع';
       $labels->menu_name          = 'مواضيع';
       $labels->name_admin_bar     = 'موضوع';
    }
    

    بالتوفيق 🙂

    السلام عليكم أخي،

    لقد قمت بكتابة مقالة مفصة حول أنواع المقالا المخصص، سأقوم بتحديث المقالة بإنتظام حسب الحاجة و الأسئلة التي أتوصل بها حول الموضوع.

    رابط المقالة: أنواع المقالات المخصصة

    بالتوفيق.

    السلام عليكم أخي، أنت تستعمل في موقعك قالب مدفوع و له دعم فني خاص به، في منتديات وورديبرس يتم الرد فقط على الأسئلة المتعلقة بالقوالب المجانية.

    شكرا.

    جرب هذا الكود و اعلمني بالنتيجة 🙂

    
    /**
     * @param  $value
     * @return 
     */
    function saidweb_get_meta( $value ) {
    	global $post;
    
    	$field = get_post_meta( $post->ID, $value, true );
    	if ( ! empty( $field ) ) {
    		return is_array( $field ) ? stripslashes_deep( $field ) : stripslashes( wp_kses_decode_entities( $field ) );
    	} else {
    		return false;
    	}
    }
    /**
     * @return
     */
    function saidweb_add_meta_box() {
    	add_meta_box(
    		'saidweb-custom-meta-boxs',
    		__( 'product Section', 'saidweb' ),
    		'saidweb_html',
    		'post',
    		'normal',
    		'default'
    	);
    }
    add_action( 'add_meta_boxes', 'saidweb_add_meta_box' );
    
    /**
     * @param  $post
     * @return 
     */
    function saidweb_html( $post) {
    	wp_nonce_field( '_saidweb_nonce', 'saidweb_nonce' ); ?>
    
    	<p>
    		<label for="saidweb_product_name"><?php _e( 'Product Name', 'saidweb' ); ?></label><br>
    		<input type="text" name="saidweb_product_name" id="saidweb_product_name" value="<?php echo saidweb_get_meta( 'saidweb_product_name' ); ?>">
    	</p>	<p>
    		<label for="saidweb_prduct_description"><?php _e( 'Prduct Description', 'saidweb' ); ?></label><br>
    		<textarea name="saidweb_prduct_description" id="saidweb_prduct_description" ><?php echo saidweb_get_meta( 'saidweb_prduct_description' ); ?></textarea>
    	
    	</p>
    <?php
    }
    
    /**
     * @param  $post_id
     * @return 
     */
    function saidweb_save( $post_id ) {
    	if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
    	if ( ! isset( $_POST['saidweb_nonce'] ) || ! wp_verify_nonce( $_POST['saidweb_nonce'], '_saidweb_nonce' ) ) return;
    	if ( ! current_user_can( 'edit_post', $post_id ) ) return;
    
    	if ( isset( $_POST['saidweb_product_name'] ) )
    		update_post_meta( $post_id, 'saidweb_product_name', esc_attr( $_POST['saidweb_product_name'] ) );
    	if ( isset( $_POST['saidweb_prduct_description'] ) )
    		update_post_meta( $post_id, 'saidweb_prduct_description', esc_attr( $_POST['saidweb_prduct_description'] ) );
    }
    add_action( 'save_post', 'saidweb_save' );
    
    

    لإظهار الحقول المخصصة في القالب استعمل:

    
    saidweb_get_meta( 'saidweb_product_name' );
    saidweb_get_meta( 'saidweb_prduct_description');
    

    و عليكم السلام و رحمة الله تعالى و بركاته، مرحبا بك فب المنتدى و أتمنى أن تستفيد كثرت هنا

    لإطهار محتوى العلب المخصصة (Meta Boxes) في أي مكان تريده فقط عليك جلبه بواسطة الوظيفة get_post_meta التي بدورها تتحمّل ثلات برمترات، الأول يكون هو المعرف الوحيد (ID) للمقال، و الثاني يكون هو المعرف الوحيد للحقل و الثالت يكون إما false أو true.

    في حالتك هذه مثلا لعرض محتوى ProductName نقوم بالآتي:

    $product_name = get_post_meta( get_the_ID(),'product_name', true );
    
    echo $product_name;
    

    تحياتي 🙂

مشاهدة 5 ردود - 1 حتى 5 (من مجموع 5)