التصنيف: دعم عام
التصنيف: دعم عام
  • كيفية انشاء قالب ابن child theme
  • طريقة عمل نافذة منبثقة عند الضغط على كلمة
  • إضافة رابط لجميع صور المقالات أوتوماتيكيا

كيفية انشاء قالب ابن child theme

السلام عليكم ورحمة الله لدي قالب من قوالب الووردبريس الافتراضية وأريد أن أعدل ع...
محمد رضا |15 مارس 2019 |6

طريقة عمل نافذة منبثقة عند الضغط على كلمة

السلام عليكمهناك خاصية في موقعكم لما اضغط على كلمة "عن الموقع" تفتح لي نافذة...
قرين |21 جـانفي 2019 |6

إضافة رابط لجميع صور المقالات أوتوماتيكيا

السلام عليكم أحتاج من فضلكم لكود php او java لجعل جميع الصور داخل المواضيع لها...
رشيد |15 جـانفي 2019 |2

  • منع نشر أو كتابة موضوع دون محتوى

2014/10/26
كاتب الموضوع: BENACEUR
التصنيف: ووردبريس wordpress
منع نشر أو كتابة موضوع دون محتوى

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

الكود يتم وضعه في ملف functions.php الموجود ضمن القالب المستعمل :

function benaceur_post_content_min( $new_status, $old_status, $post )
{
    if ( $new_status == 'publish' )
    {
        $content = $post->post_content;

        if ( strlen($content) <= 7 )
        {
            $my_post = array(
                'ID'           => $post->ID,
                'post_status' => 'draft'
            );
            wp_update_post( $my_post );

            wp_die( 'لا يمكن نشر الموضوع, يجب كتابة محتوى ...' );
        }
    }
}
add_action( 'transition_post_status', 'benaceur_post_content_min', 10,3 );

العدد 7 يشير إلى أنه لا يمكن نشر موضوع يحوي 7 حروف فأقل أي يجب أن تكون 8 فأكثر ولك أن تغير هذه القيمة إلى ما يناسبك :

if ( strlen($content) <= 7 )

وبذلك عند محاولة نشر موضوع بدون محتوى أو محتوى يتكون من 7 أحرف فأقل لا يتم نشره ويبقى كمسودة فقط مع ظهور رسالة تعلمه بذلك, وكذلك نفس النتيجة مع المواضيع المنشورة عند التعديل عليها.

ملاحظة هامة : هذا الكود في حال كان الموضوع منشورا أو قبل النشر أما في حال إرساله للمراجعة تابع الرد أسفل الموضوع.

انتهى.


شارك هذا الموضوع على:

رابط الموضوع للنسخ
BENACEUR

نبذة قصيرة عن BENACEUR

أقوم بتطوير وإنشاء المواقع خاصة الووردبريس وما يتعلق به كالإضافات حيث ساهمت بخمس إضافات من تطويري, ولذلك فموقعي هذا جعلته يهتم بالدرجة الأولى بتطوير ودعم الووردبريس, ثم الأنترنت والمواقع الإلكترونية بصفة عامة ...




أضف تعليقك | سجّل دخولك

تعليقاتك تحتاج في هذا الموضوع إلى المراجعة قبل النشر



  1. BENACEUR
  2. سيرة الذاتية
    ---------------------------
    أقوم بتطوير وإنشاء المواقع خاصة الووردبريس وما يتعلق به كالإضافات حيث ساهمت بخمس إضافات من تطويري, ولذلك فموقعي هذا جعلته يهتم بالدرجة الأولى بتطوير ودعم الووردبريس, ثم الأنترنت والمواقع الإلكترونية بصفة عامة ...
  3. BENACEUR ← علّقَ : 235 تعليقا
    إدارة الموقع

    أهلا وسهلا …
    فقط بدل الأول ضع التالي في ملف functions.php :

    function bentheme_post_title_content_maybe_empty( $maybe_empty, $postarr ) {
    
        if (!$postarr['ID']) return $maybe_empty;
    	
            if ( empty( $postarr['post_content'] ) && empty( $postarr['post_excerpt'] ) ) {
    		    add_filter('redirect_post_location', 'bentheme_588_redirect_post_location_filter', 99);
    			$maybe_empty = true;
    		}
            return $maybe_empty;
    }
    add_filter( 'wp_insert_post_empty_content', 'bentheme_post_title_content_maybe_empty', 999999, 2 );
    
    function bentheme_588_redirect_post_location_filter($location) {
      remove_filter('redirect_post_location', __FUNCTION__, 99);
      $location = add_query_arg('message', 99, $location);
      return $location;
    }
    add_filter('post_updated_messages', 'bentheme_588_post_updated_messages_filter');
    function bentheme_588_post_updated_messages_filter($messages) {
      $messages['post'][99] = '<style>div#message.updated.notice-success.is-dismissible {display: none !important;}</style>
      <div class="notice notice-error is-dismissible"><p>لا يمكن نشر أو تحرير موضوع بدون محتوى, أكتب محتوى موضوعك أولا !</p></div>';
      return $messages;
    }

    شكرا على التنبيه لأن الكود كان يشتغل على النسخ القديمة.



  4. Avatar
  5. سيرة الذاتية
    ---------------------------
    لم يقم بكتابة سيرته بعد
  6. abubasil ← علّقَ : تعليقين اثنين
    عضو

    شكرا جزيلا ، بعد تنصيب هذه الاضافة وتجربتها ، وجدت ان المشاركة تحفظ بشكل مسودة بدون تنبيه المستخدم حول هذا الشيء ، حاول ان تجعل الكود يعيد فتح نفس المسودة في طور التحرير بدلا من اضطرار المستخدم الى ضغط زر الرجوع في المتصفح فيجد نموذج ادخال مقالة جديدة مفتوح للتو ، او الطريقة الاخرى ان تظهر نفس رسالة – لا يمكن النشر لا يوجد محتوى-نفس هذه الرسالة تظهر بشكل مسج بوكس بدون مغادرة الصفحة ، ودمت موفقا .
    هذا الفونت شو اسمو ؟؟



  7. Avatar
  8. سيرة
    ابو باسل
    الذاتية
    ---------------------------
    السيرة الذاتية للمسجلين في الموقع
  9. ابو باسل ← علّقَ : 3 تعليقات
    زائر

    اضافة ممتازة ، احسنتم



  10. Avatar
  11. سيرة
    amiro
    الذاتية
    ---------------------------
    السيرة الذاتية للمسجلين في الموقع
  12. amiro ← علّقَ : تعليقين اثنين
    زائر

    تمام 10/10
    شكرا لك وجزاك الله خيرا



  13. BENACEUR
  14. سيرة الذاتية
    ---------------------------
    أقوم بتطوير وإنشاء المواقع خاصة الووردبريس وما يتعلق به كالإضافات حيث ساهمت بخمس إضافات من تطويري, ولذلك فموقعي هذا جعلته يهتم بالدرجة الأولى بتطوير ودعم الووردبريس, ثم الأنترنت والمواقع الإلكترونية بصفة عامة ...
  15. BENACEUR ← علّقَ : 235 تعليقا
    إدارة الموقع

    وعليكم السلام
    فقط قم باستبدال :

    if ( $new_status == 'publish' )

    ب :

    if ( $new_status == 'pending' || $new_status == 'publish' )

    واستبدل :

    add_action( 'transition_post_status', 'benaceur_post_content_min', 10,3 );

    ب :

    add_action( 'transition_post_status', 'benaceur_post_content_min', 10,3 );
    add_action(  'pending_to_publish',  'benaceur_post_content_min', 10, 1 );
    

    بالتوفيق. 😀



  16. Avatar
  17. سيرة
    amiro
    الذاتية
    ---------------------------
    السيرة الذاتية للمسجلين في الموقع
  18. amiro ← علّقَ : تعليقين اثنين
    زائر

    السلام عليكم
    بعد تجريب الكود (وقد كنت أبحث عنه منذ مدة) عمل مع التدوينة في حال نشرها ولم يعمل عند إرسالها للمراجعة
    أرجوا أن يكون السؤال واضحا ولكم جزيل الشكر