• بسم الله الرحمن الرحيم اللهم صل وسلم وبارك على محمد واله وصحبه
    مشكلتي تكمن في إضافة حقول مخصصة
    وضعت طريقتين لعرض محتوى الحقول المخصصة على صفحة البوست والسينكل ولكن لم أخرج بأي نتيجة ماهو الحل من فضلكم ؟؟؟
    الطريقة الأولى وإضافة كود الحقول على صفحة الفانكشن ووضع المتغيرات على الصفحات
    الثانية : تفعيل الحقول المخصصة والعمل عليها بوضع الإسم والقيمة ووضع الفانكشنز في أماكنها بات ذالك كله بدون جدوى
    إليكم كود صفحة الفانكشن للتصحيح إن كان هناك أي خطأ

    /**
    * aReview functions and definitions
    *
    * @package aReview
    */
    function my_custom_meta_box (){
    
    $multi_posts=array('page','post');
    
    foreach ($multi_posts as $multi_post){
    add_meta_box(
    
    'custom_meta_box_id',
    __('product Section','textdomain'),
    'meta_box_callback_funct',
    $multi_post,
    'normal'
    
    );
    }
    
    }
    
    add_action('add_meta_boxes','my_custom_meta_box');
    
    function meta_box_callback_funct($post){
    $product_name=get_post_meta($post->ID,'product_name', true);
    $product_description=get_post_meta($post->ID,'product_description', true);
    
    wp_nonce_field('product_nonce_action','product_nonce_name');
    
    ?>
    
    <p>
    <label for="product_name">ProductName</label>
    <input type="text" id="product_name" name="product_name"
    value="<?php echo $product_name ;?>"/>
    </p>
    
    <p>
    <label for="product_description">ProductDescription</label>
    <textarea class="widefat" id="product_description" name="product_description"
    cols="10″ rows="10″><?php echo $product_description ;?></textarea>
    
    </p>
    
    <?php
    
    }
    
    function save_our_custom_data($post_id){
    
    if(defined('DOING_AUTOSAVE')&& DOING_AUTOSAVE)
    return;
    
    if(!isset($_POST['product_nonce_name'])|| !wp_verify_nonce($_POST['product_nonce_name'],'product_nonce_action'))
    return;
    
    if(!isset($_POST['product_name'])&& ($_POST['product_name'] !="")){
    update_post_meta($post_id,'product_name',esc_html($_POST['product_name']));
    
    }
    
    if(!isset($_POST['product_description'])&& ($_POST['product_description'] !="")){
    update_post_meta($post_id,'product_description',esc_html($_POST['product_description']));
    
    }
    
    }
    add_action('save_post','save_our_custom_data');
    
    • هذا الموضوع قد تم تعديله قبل 9 years، 1 months بواسطة BralachCodex. السبب: نسيت كتابة البسملة والصلاة على النبي
    • هذا الموضوع تم تعديله في قبل 9 years، 1 months بواسطة Said El Bakkali.
    • هذا الموضوع تم تعديله في قبل 9 years، 1 months بواسطة Said El Bakkali.
    • هذا الموضوع تم تعديله في قبل 9 years، 1 months بواسطة Said El Bakkali.
مشاهدة 3 ردود - 1 حتى 3 (من مجموع 3)
  • و عليكم السلام و رحمة الله تعالى و بركاته، مرحبا بك فب المنتدى و أتمنى أن تستفيد كثرت هنا

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

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

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

    تحياتي 🙂

    Thread Starter BralachCodex

    (@macdawne)

    نعم هذا بالضبط أخي سعيد مافعلت قبل أن تكتب ردك على سؤالي ولكن للأسف لم ينجح الأمر لا أعرف أين الخطأ بالضبط

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

    
    /**
     * @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');
    
مشاهدة 3 ردود - 1 حتى 3 (من مجموع 3)
  • The topic ‘معاناتي مع الحقول الإضافية’ is closed to new replies.