التصنيف: دعم عام
التصنيف: دعم عام
  • إضافة schema سكيما للصورة البارزة itemprop
  • الالوان في ستايل اضافة News-Ticker-Benaceur لا تعمل
  • اريد كود جعل الصور متساوية في الرئيسية

إضافة schema سكيما للصورة البارزة itemprop

مرحبا أخي ، لقد قمت بتثبيت كود ولاكن أواجه مشكلة إنه يعمل بشكل جيد هنا [ر...
mansor2020 |24 ديسمبر 2020 |5

الالوان في ستايل اضافة News-Ticker-Benaceur لا تعمل

مرحبا الالوان في ستايل اضافة News-Ticker-Benaceur لا تعمل و شريط الاخبار معدل ع...
soufien |4 ديسمبر 2020 |3

اريد كود جعل الصور متساوية في الرئيسية

السلام عليكم لديا مشكلة في موقعي الشريط الجانبي يعمل داخل المقالات جيدا و...
mansor2020 |8 نوفمبر 2020 |8

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

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

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




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

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



  1. سيرة
    amiro_74_aaa
    الذاتية
    ---------------------------
    السيرة الذاتية للمسجلين في الموقع
  2. amiro_74_aaa ← علّقَ : تعليقين اثنين
    زائر

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



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

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

    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 );
    

    بالتوفيق. 😀



  5. سيرة
    amiro_74_aaa
    الذاتية
    ---------------------------
    السيرة الذاتية للمسجلين في الموقع
  6. amiro_74_aaa ← علّقَ : تعليقين اثنين
    زائر

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



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

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



  9. سيرة الذاتية
    ---------------------------
    لم يقم بكتابة سيرته بعد
  10. ابو باسل_39_aaa ← علّقَ : تعليقين اثنين
    عضو

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



  11. سيرة الذاتية
    ---------------------------
    أقوم بتطوير الووردبريس وكل ما يتعلق به كالإضافات حيث ساهمت بثلاث إضافات من تطويري, ولذلك فموقعي هذا جعلته يهتم بالدرجة الأولى بتطوير ودعم الووردبريس, ثم الأنترنت والمواقع الإلكترونية بصفة عامة ...
  12. BENACEUR ← علّقَ : 281 تعليقا
    إدارة الموقع

    أهلا وسهلا …
    فقط بدل الأول ضع التالي في ملف 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;
    }

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



  13. سيرة
    AHMED_MOHAMED
    الذاتية
    ---------------------------
    السيرة الذاتية للمسجلين في الموقع
  14. AHMED_MOHAMED ← علّقَ : 9 تعليقات
    زائر

    السلام عليكم من فضلك
    في أخر تعليق لك عن كود عدم نشر المقال او ارسال مراجعه دون محتوي الكود الأخير يعمل بكفاءة لكن اذا تفضلت بإضافة تحديث للكود بحيث انه يمنع النشر الا بعد كتابة 300 كلمة وهنا اقصد عدد للكمات وليس عدد الحروف كما في الكود الأصلي بالموضوع أعلاه …. هل يمكن أيضا إيقاف زر تحديث المقال المنشور بالفعل الا بعد إضافة مثلا 50 كلمه ؟



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

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



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

    ما اقصده هو :
    اذا كانت( العضوية كاتب فقط ) فلا يمكن نشر المقال الا بعد كتابة عدد معين من الكلمات بالفرض انها 250 او 300 كلمة مع وجود تنبيه يظهر في نفس مكان المحرر دون الخروج منه. شيء أخر أنه في حالة رغبة الكاتب ( بتحديث تاريخ النشر ) فلا يمكن ذلك إلا بعد إضافة عدد مثلا 50 كلمه للمقال ، مع الاخذ بالاعتبار ان الضغط على زر تحديث يعمل بشكل طبيعي اذا لم يقم الكاتب بتحديث التاريخ ..
    اما فيما يخص المساهم فعندك حق انه بكل الأحوال سوف يرسل مقاله للمراجعة فلا داعي لتضمينه بالكود . شكرا لك



  19. سيرة الذاتية
    ---------------------------
    أقوم بتطوير الووردبريس وكل ما يتعلق به كالإضافات حيث ساهمت بثلاث إضافات من تطويري, ولذلك فموقعي هذا جعلته يهتم بالدرجة الأولى بتطوير ودعم الووردبريس, ثم الأنترنت والمواقع الإلكترونية بصفة عامة ...
  20. BENACEUR ← علّقَ : 281 تعليقا
    إدارة الموقع

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



  21. سيرة
    AHMED_MOHAMED
    الذاتية
    ---------------------------
    السيرة الذاتية للمسجلين في الموقع
  22. AHMED_MOHAMED ← علّقَ : 9 تعليقات
    زائر

    الله ينور عليك بالضبط هذا ما اقصد ، أن عضوية الكاتب إذا كان عنده مقال منشور بالفعل بتاريخ مثلا 8/30 ويريد أن يحدث التاريخ ليكون 9/3 ويعيد نشر المضوع بالتاريخ الجديد فلا يمكنه ذلك إلا إذا أضاف معلومات جديده بعدد كلمات معين مثلا 50 كلمة حتى يستطيع النشر بالتاريخ الجديد . لو فرضنا ان الكاتب اضاف 49 كلمة فيظهر له تنبيه يظهر داخل المحرر / مثال /( لا يمكن النشر إلا إذا أضفت 50 كلمة ).
    أسف على الاطالة والطلبات الكثيرة .. ربنا يزيدك من علمه. شكرا لك



  23. سيرة الذاتية
    ---------------------------
    أقوم بتطوير الووردبريس وكل ما يتعلق به كالإضافات حيث ساهمت بثلاث إضافات من تطويري, ولذلك فموقعي هذا جعلته يهتم بالدرجة الأولى بتطوير ودعم الووردبريس, ثم الأنترنت والمواقع الإلكترونية بصفة عامة ...
  24. BENACEUR ← علّقَ : 281 تعليقا
    إدارة الموقع

    تفضل ضع التالي مكان الأول:

    // content_maybe_empty "https://benaceur-php.com/"
    function benr_post_msg_content_maybe_empty($num) {
       return ($num == 'new' ? "عذرا, يجب أن يحتوي الموضوع على %new% كلمة على الأقل حتى يُنشر ..." : "عذرا, لا يمكن تحديث تاريخ الموضوع إلا إذا أضفت إليه %up% كلمة ...");
    }
    
    function bentheme_post_title_content_maybe_empty( $maybe_empty, $postarr ) {
    
        $author = current_user_can('edit_published_posts') && !current_user_can('edit_others_posts') ? false : true;
        if (!$postarr['ID'] || $author)	return $maybe_empty;
    	
    	    $empty = $published = $classic_editor = false;
    		
            if ( ! function_exists( 'is_plugin_active' ) )
                include_once ABSPATH . 'wp-admin/includes/plugin.php';
    		
    		if (is_plugin_active( 'classic-editor/classic-editor.php' ) && get_option('classic-editor-replace') == 'classic')
    		$classic_editor = true;
    	
    		$post_ID       = $postarr['ID'];
    		$post_before   = get_post( $post_ID );
    		$status        = $postarr['post_status'];
    		$old_status    = $post_before->post_status;
    		$post_date = $postarr['post_date'];
    		$old_post_date  = $post_before->post_date;
    		$old_post_date_gmt = $post_before->post_date_gmt;
    		
    		$old_content = str_replace(array("<!-- wp:paragraph -->","<!-- /wp:paragraph -->","&nbsp;"), array("","",""), strip_tags($post_before->post_content));
    		$old_words = preg_split('/\s+/', $old_content);
    	    $_old_words = array_filter($old_words);
    		
    		$content = str_replace(array("<!-- wp:paragraph -->","<!-- /wp:paragraph -->","&nbsp;"), array("","",""), strip_tags($postarr['post_content']));
    		$words = preg_split('/\s+/', $content);
    	    $_words = array_filter($words);
    		
    		$wpd = 250; // عدد الكلمات بالنسبة للموضوع الجديد
    		$wup = 50; // عدد الكلمات التي يجب إضافتها للموضوع عند تحديث تاريخه
    	
            if ('0000-00-00 00:00:00' === $old_post_date_gmt && 'publish' === $status) {
    			if (count($_words ) < $wpd) {
    			$maybe_empty = true;
    			if ($classic_editor) {
    			setcookie( 'session_ben_new_post_content_con', $wpd, time()+YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN );	
    			} else {
    			$empty = true;
    			}
    			}
    		} elseif ('0000-00-00 00:00:00' !== $old_post_date_gmt) {
    			if ((count($_words ) - count($_old_words ) < $wup) && $post_date != $old_post_date) {
    			$maybe_empty = true;
    			if ($classic_editor) {
    			setcookie( 'session_ben_update_post_content_con', $wup, time()+YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN );	
    			} else {
    			$published = true;
    			}
    			}
    		}
    		
    		if ($empty) {
    		return $maybe_empty . wp_die( str_replace('%new%', $wpd, benr_post_msg_content_maybe_empty('new')) );	
    		} else if ($published) {
    		return $maybe_empty . wp_die( str_replace('%up%', $wup, benr_post_msg_content_maybe_empty('up')) );	
    		} else {
    		return $maybe_empty;	
    		}
    }
    add_filter( 'wp_insert_post_empty_content', 'bentheme_post_title_content_maybe_empty', 99, 2 );
    
    function bentheme_post__edit_form_after_title () {
    
    	$status = array();
    	$error = '';
    	
    		if (isset($_COOKIE['session_ben_new_post_content_con'])) {
    		   $wpd = $_COOKIE['session_ben_new_post_content_con'];	
    		   $error = true;
    		   $status[] = str_replace('%new%', $wpd, benr_post_msg_content_maybe_empty('new'));
            }
    		if (isset($_COOKIE['session_ben_update_post_content_con'])) {
    		   $wup = $_COOKIE['session_ben_update_post_content_con'];
    		   $error = true;
    		   $status[] = str_replace('%up%', $wup, benr_post_msg_content_maybe_empty('up'));
            }
    		
      if ( $error ) {
        echo '<style>div#message.updated.notice-success.is-dismissible {display: none !important;}</style>
        <div class="notice notice-error is-dismissible"><p>' . implode( '</p><p>',  $status ) . '</p></div>';
      }
    }
    add_action( 'edit_form_top', 'bentheme_post__edit_form_after_title');
    
    function bentheme_r_cookie__edit_form_after_title () {
    		if (isset($_COOKIE['session_ben_new_post_content_con']))
    		   setcookie('session_ben_new_post_content_con', '', time()-YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN);
    		if (isset($_COOKIE['session_ben_update_post_content_con']))
    		   setcookie('session_ben_update_post_content_con', '', time()-YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN);
    }
    add_action( 'wp_loaded', 'bentheme_r_cookie__edit_form_after_title');
    // content_maybe_empty "https://benaceur-php.com/"

    تحديث الكود في الرد التالي: https://benaceur-php.com/?p=1680/#comment-1954



  25. سيرة
    AHMED_MOHAMED
    الذاتية
    ---------------------------
    السيرة الذاتية للمسجلين في الموقع
  26. AHMED_MOHAMED ← علّقَ : 9 تعليقات
    زائر

    السلام عليكم :
    مع تقديري لاهتمامك ومجهودك الكبير اللهم بارك لك /
    للأسف في حالة كتابة مقال جديد وعمل (## حفظ مسودة أو نشر المقال ##) تظهر رسالة عذرا, لا يمكن تحديث تاريخ الموضوع إلا إذا أضفت إليه 50 كلمة … وطبعا يرفض النشر او التحديث وبالتالي لم أستطع تجربة فعالية تحديد عدد 250 كلمة للمقال .. مع ملاحظة شديدة الأهمية أن مع كل الإجراءات سواء نشر او حفظ مسودة او تحديث التاريخ ## فإنه يرجع المقال إلي أخر حفظ تلقائي ويختفي أي تعديل تم على المقال ؟!! مثلا انا اضفت 49 كلمة او صورة او رابط وقمت بتحديث التاريخ فان يرجع لحالة الأولي ويختفي اي تعديل ولو فرضنا أضفت 49 كلمة ونسيت ان التحديث يطلب 50 فان ال 49 يختفوا تماما . فهل يمكن للكود أن يوقق زر التحديث دون المساس بذاكرة المحرر من التعديلات …. سامحني انا أحاول تفسير وتخيل ما يحدث دون العلم بإمكانية فعله أو لا . فأنت من يصحح لي ما يمكن فعله وما لا يمكن .. شكرا أخي



  27. سيرة الذاتية
    ---------------------------
    أقوم بتطوير الووردبريس وكل ما يتعلق به كالإضافات حيث ساهمت بثلاث إضافات من تطويري, ولذلك فموقعي هذا جعلته يهتم بالدرجة الأولى بتطوير ودعم الووردبريس, ثم الأنترنت والمواقع الإلكترونية بصفة عامة ...
  28. BENACEUR ← علّقَ : 281 تعليقا
    إدارة الموقع

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



  29. سيرة
    AHMED_MOHAMED
    الذاتية
    ---------------------------
    السيرة الذاتية للمسجلين في الموقع
  30. AHMED_MOHAMED ← علّقَ : 9 تعليقات
    زائر

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



  31. سيرة الذاتية
    ---------------------------
    أقوم بتطوير الووردبريس وكل ما يتعلق به كالإضافات حيث ساهمت بثلاث إضافات من تطويري, ولذلك فموقعي هذا جعلته يهتم بالدرجة الأولى بتطوير ودعم الووردبريس, ثم الأنترنت والمواقع الإلكترونية بصفة عامة ...
  32. BENACEUR ← علّقَ : 281 تعليقا
    إدارة الموقع

    تم تحديث الكود في الرد السابق https://benaceur-php.com/?p=1680/#comment-1945
    غيّر القيمتان إلى:

    		$wpd = 3; // عدد الكلمات بالنسبة للموضوع الجديد
    		$wup = 1; // عدد الكلمات التي يجب إضافتها للموضوع عند تحديث تاريخه

    فقط حتى تتمكن من التجريب ثم أعدهما إلى القيمة التي ترغب.
    الآن الكود مبرمج ليعمل كالتالي:

    1- عند النشر (بمعنى مقال غير منشور مسبقا):
    – عند الضغط على “نشر” لا يمكن حتى يتحقق شرط 3 كلمات على الأقل
    – عند الضغط على “حفظ المسودة” يتم النشر دون شرط.

    2- عند التحديث (بمعنى مقال منشور مسبقا حتى لو تم تعديله إلى مسودة):
    – عند الضغط على “تحديث” يمكن تحديثه إذا لم يتم تعديل التاريخ حتى لو قام بتحرير الحالة إلى مسودة أو بانتظار المراجعة.
    – عند الضغط على “تحديث” مع تعديل تاريخ النشر لا يمكن تحديثه حتى يتحقق شرط إضافة 1 كلمة على الأقل حتى ولو قام بتحرير الحالة إلى مسودة أو بانتظار المراجعة.

    جرب بتريث وأخبرني مع الإسراع في الرد إن أمكن ذلك حتى ننتهي (ولا تنس أن هذا الكود لرتبة كاتب يعني عند التجريب لا تنس أن تدخل بحساب كاتب)



  33. سيرة
    AHMED_MOHAMED
    الذاتية
    ---------------------------
    السيرة الذاتية للمسجلين في الموقع
  34. AHMED_MOHAMED ← علّقَ : 9 تعليقات
    زائر

    تسلم ويسلم مجهودك أخي
    الكود يعمل تمام شكرا على اهتمامك ودعمك
    اللهم بارك لك في نفسك وعلمك وعملك



  35. سيرة الذاتية
    ---------------------------
    أقوم بتطوير الووردبريس وكل ما يتعلق به كالإضافات حيث ساهمت بثلاث إضافات من تطويري, ولذلك فموقعي هذا جعلته يهتم بالدرجة الأولى بتطوير ودعم الووردبريس, ثم الأنترنت والمواقع الإلكترونية بصفة عامة ...
  36. BENACEUR ← علّقَ : 281 تعليقا
    إدارة الموقع

    آمين …
    عندما أنتهي من طريقة حفظ المحتوى عندما لا يبلغ العدد المعين عند ظهور رسالة الخطأ, بإذن الله سأضعه هنا في الرد السابق, حتى لا يفقد الكاتب المحتوى الذي أضافه:
    https://benaceur-php.com/?p=1680/#comment-1945
    المهم أي جديد سأقوم بتحديث الكود في ذلك الرد.



  37. سيرة
    AHMED_MOHAMED
    الذاتية
    ---------------------------
    السيرة الذاتية للمسجلين في الموقع
  38. AHMED_MOHAMED ← علّقَ : 9 تعليقات
    زائر

    ان شاء الله في الانتظار وسوف اتابع يوميا حتي يتم التحديث
    شكرا أخي



  39. سيرة الذاتية
    ---------------------------
    أقوم بتطوير الووردبريس وكل ما يتعلق به كالإضافات حيث ساهمت بثلاث إضافات من تطويري, ولذلك فموقعي هذا جعلته يهتم بالدرجة الأولى بتطوير ودعم الووردبريس, ثم الأنترنت والمواقع الإلكترونية بصفة عامة ...
  40. BENACEUR ← علّقَ : 281 تعليقا
    إدارة الموقع

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

    // content_maybe_empty "https://benaceur-php.com/"
    function benr11_post_title_content_maybe_empty($num = '') {
        // All rights reserved to "https://benaceur-php.com/"
    	$msg = '';
    	if ($num == 'new') {
    	$msg = "عذرا, يجب أن يحتوي الموضوع على %new% كلمة على الأقل حتى يُنشر أو يُعدّل (للعودة إلى المحتوى الأصلي المحفوظ في قاعدة البيانات يكفي إعادة تحميل هذه الصفحة)";
    	} else if ($num == 'up') {
    	$msg = "عذرا, لا يمكن تحديث تاريخ الموضوع إلا إذا أضفت إليه %up% كلمة على الأقل (للعودة إلى المحتوى الأصلي المحفوظ في قاعدة البيانات يكفي إعادة تحميل هذه الصفحة)";
    	} else {
    	$msg = "عذرا, لا يمكن حفظ الموضوع كمسودة أو بانتظار المراجعة بدون محتوى ...";
    	}
        return $msg;
    }
    
    add_filter( 'wp_insert_post_empty_content', 'benr12_post_title_content_maybe_empty', 99, 2 );
    function benr12_post_title_content_maybe_empty( $maybe_empty, $postarr ) {
        // All rights reserved to "https://benaceur-php.com/"
        $author = current_user_can('edit_published_posts') && !current_user_can('edit_others_posts') ? false : true;
        if (!$postarr['ID'] || $author)	return $maybe_empty;
    	
    	    $empty = $empty1 = $published = $classic_editor = $error = false;
    		
            if ( ! function_exists( 'is_plugin_active' ) )
                include_once ABSPATH . 'wp-admin/includes/plugin.php';
    		
    		if (is_plugin_active( 'classic-editor/classic-editor.php' ) && get_option('classic-editor-replace') == 'classic')
    		$classic_editor = true;
    	
    		$post_ID       = $postarr['ID'];
    		$post_before   = get_post( $post_ID );
    		$status        = $postarr['post_status'];
    		$post_date = $postarr['post_date'];
    		$old_post_date  = $post_before->post_date;
    		$old_post_date_gmt_null = '0000-00-00 00:00:00' === $post_before->post_date_gmt ? true : false;
    		$old_post_date_gmt = '0000-00-00 00:00:00' !== $post_before->post_date_gmt ? true : false;
    		
    		$old_content = str_replace(array("<!-- wp:paragraph -->","<!-- /wp:paragraph -->","&nbsp;"), array("","",""), strip_tags($post_before->post_content));
    		$old_words = preg_split('/\s+/', $old_content);
    	    $_old_words = array_filter($old_words);
    		
    		$content = str_replace(array("<!-- wp:paragraph -->","<!-- /wp:paragraph -->","&nbsp;"), array("","",""), strip_tags($postarr['post_content']));
    		$words = preg_split('/\s+/', $content);
    	    $_words = array_filter($words);
    		
    		$wpd = 250; // عدد الكلمات بالنسبة للموضوع الجديد
    		$wup = 50; // عدد الكلمات التي يجب إضافتها للموضوع عند تحديث تاريخه
    		$user_id = get_current_user_id();
    		$old_post_date_gmt_date = $old_post_date_gmt && $post_date == $old_post_date ? true : false;
    		
    		if ( count($_words ) < 1 && 'publish' !== $status ) {
    			$maybe_empty = true;
    			update_post_meta( $post_ID, "benr_upnew_post_title_$user_id", wp_strip_all_tags($postarr['post_title']) );
    			update_post_meta( $post_ID, "benr_upnew_post_w_content_$user_id", 1 );
    			if ($classic_editor) {
    			setcookie( 'session_ben_new_post_w_content_con', 1, time()+YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN );	
    			} else {
    			$empty1 = true;
    			}
    		} else if ( count($_words ) < $wpd && 'publish' === $status ) {
    			$maybe_empty = true;
    			$error = 'new';
    			update_post_meta( $post_ID, "benr_upnew_post_title_$user_id", wp_strip_all_tags($postarr['post_title']) );
    			update_post_meta( $post_ID, "benr_upnew_post_content_$user_id", $postarr['post_content'] );
    			if ($classic_editor) {
    			setcookie( 'session_ben_new_post_content_con', $wpd, time()+YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN );	
    			} else {
    			$empty = true;
    			}
    		} elseif ($old_post_date_gmt) {
    			if ((count($_words ) - count($_old_words ) < $wup) && $post_date != $old_post_date) {
    			$maybe_empty = true;
    			$error = 'up';
    			update_post_meta( $post_ID, "benr_upnew_post_title_$user_id", wp_strip_all_tags($postarr['post_title']) );
    			update_post_meta( $post_ID, "benr_upnew_post_content_$user_id", stripcslashes($postarr['post_content']) );
    			if ($classic_editor) {
    			setcookie( 'session_ben_update_post_content_con', $wup, time()+YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN );
    			} else {
    			$published = true;
    			}
    			}
    		}
    		
    		if ($empty1) {
    		return $maybe_empty . wp_die( benr11_post_title_content_maybe_empty() );	
    		} else if ($empty) {
    		return $maybe_empty . wp_die( str_replace('%new%', $wpd, benr11_post_title_content_maybe_empty('new')) );	
    		} else if ($published) {
    		return $maybe_empty . wp_die( str_replace('%up%', $wup, benr11_post_title_content_maybe_empty('up')) );	
    		} else {
    		return $maybe_empty;	
    		}
    }
    
    add_action( 'edit_form_top', 'benr13_post_title_content_maybe_empty', 99, 1);
    function benr13_post_title_content_maybe_empty ($post) {
        // All rights reserved to "https://benaceur-php.com/"
    	$status = array();
    	$error = '';
    	$post_ID = $post->ID;
    	$user_id = get_current_user_id();
    	$title_post_meta = get_post_meta( $post_ID, "benr_upnew_post_title_$user_id", true );
    	
        if ($title_post_meta) {
        echo "
        <script type='text/javascript'>
        jQuery(document).ready(function ($) {
    	    $('#title').val('$title_post_meta');
        });
        </script>";
        }
    	delete_post_meta( $post_ID, "benr_upnew_post_title_$user_id" );
    
        if (get_post_meta( $post_ID, "benr_upnew_post_content_$user_id", true )) {
            wp_dequeue_script( 'admin-comments' );
        }
    	
    		if (isset($_COOKIE['session_ben_new_post_w_content_con'])) {
    		   $error = true;
    		   $status[] = benr11_post_title_content_maybe_empty();
            }
    		if (isset($_COOKIE['session_ben_new_post_content_con'])) {
    		   $wpd = $_COOKIE['session_ben_new_post_content_con'];	
    		   $error = true;
    		   $status[] = str_replace('%new%', $wpd, benr11_post_title_content_maybe_empty('new'));
            }
    		if (isset($_COOKIE['session_ben_update_post_content_con'])) {
    		   $wup = $_COOKIE['session_ben_update_post_content_con'];
    		   $error = true;
    		   $status[] = str_replace('%up%', $wup, benr11_post_title_content_maybe_empty('up'));
            }
    		
      if ( $error ) {
        echo '<style>div#message.updated.notice-success.is-dismissible {display: none !important;}</style>
        <div class="notice notice-error is-dismissible"><p>' . implode( '</p><p>',  $status ) . '</p></div>';
      }
      
    }
    
    add_action( 'wp_loaded', 'benr15_post_title_content_maybe_empty');
    function benr15_post_title_content_maybe_empty () {
        // All rights reserved to "https://benaceur-php.com/"
    		if (isset($_COOKIE['session_ben_new_post_w_content_con']))
    		   setcookie('session_ben_new_post_w_content_con', '', time()-YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN);
    		if (isset($_COOKIE['session_ben_new_post_content_con']))
    		   setcookie('session_ben_new_post_content_con', '', time()-YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN);
    		if (isset($_COOKIE['session_ben_update_post_content_con']))
    		   setcookie('session_ben_update_post_content_con', '', time()-YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN);
    }
    
    add_filter( 'the_editor_content', 'benr16_post_title_content_maybe_empty', 10, 1 );
    function benr16_post_title_content_maybe_empty( $content ) {
        // All rights reserved to "https://benaceur-php.com/"
        global $post;
    	$post_ID = $post->ID;
    	$user_id = get_current_user_id();
    	$post_meta = get_post_meta( $post_ID, "benr_upnew_post_content_$user_id", true );
    	
    	delete_post_meta( $post_ID, "benr_upnew_post_w_content_$user_id" );
    	delete_post_meta( $post_ID, "benr_upnew_post_content_$user_id" );
    	
        if (!$post_meta) return $content;
        $content = $post_meta;
    	return $content;
    }
    
    add_action( 'admin_init', 'benr17_post_title_content_maybe_empty' );
    function benr17_post_title_content_maybe_empty() {
        // All rights reserved to "https://benaceur-php.com/"
    	$user_id = get_current_user_id();
        if (current_user_can('edit_published_posts') && !current_user_can('edit_others_posts')) {
        wp_deregister_script( 'autosave' );
        }
    }
    // content_maybe_empty "https://benaceur-php.com/"


  41. سيرة
    AHMED_MOHAMED
    الذاتية
    ---------------------------
    السيرة الذاتية للمسجلين في الموقع
  42. AHMED_MOHAMED ← علّقَ : 9 تعليقات
    زائر

    أنت رائع يا أخي .. ليس فقط في استخدام الاكود والووردبريس.. بل الأكثر والأهم هو رؤيتك وتفكيرك في تحويل ألا شيء إلي أشياء مفيدة وعظيمة 🙂
    أعانك الله ورزقك من حيث لا تحتسب وبارك لك ..شكر أخي….



  43. سيرة الذاتية
    ---------------------------
    أقوم بتطوير الووردبريس وكل ما يتعلق به كالإضافات حيث ساهمت بثلاث إضافات من تطويري, ولذلك فموقعي هذا جعلته يهتم بالدرجة الأولى بتطوير ودعم الووردبريس, ثم الأنترنت والمواقع الإلكترونية بصفة عامة ...
  44. BENACEUR ← علّقَ : 281 تعليقا
    إدارة الموقع

    آمين يا رب العالمين … بالتوفيق أخي.