it-swarm.asia

كيف يمكنني فتح منشور برمجياً؟

يمكنني استخدام wp_set_post_lock لقفل منشور مؤقتًا حتى أتمكن فقط من تعديله.

يمكنني استخدام wp_refresh_post_lock لتحديث هذا القفل.

يمكنني استخدام wp_check_post_lock للتحقق مما إذا كان منشور مؤمن أم لا.

... ولكن كيف يمكنني إزالة قفل النشر؟ من المفترض أن تكون هناك وظيفة تدعى wp_remove_post_lock أو wp_release_post_lock ، ولكن لا يبدو أن أيا من هذه الوظائف موجودة.

فكيف يمكنني إزالة قفل المشاركة؟ بالتأكيد لا يجب علي الانتظار حتى ينتهي الوقت ، أليس كذلك؟

2
Pikamander2

للوهلة الأولى من المنطقي ، ولكن ...

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

لكن متى ستحذفها؟ بعد الادخار؟ لا - لا يزال المستخدم يقوم بالتحرير ، لذلك يجب أن يكون القفل قيد التشغيل.

يجب إزالته بعد أن يغلق المستخدم علامة التبويب أو يغلق المحرر - لكن لا يمكنك ربط هذه الإجراءات من PHP ، لأن هناك [PHP) لا يتم إخطارها قبل حدوثها مباشرةً ...

لذلك على الأرجح لا توجد وظيفة لإزالة القفل ، لأنه لا يوجد استخدام له في الاستخدام العادي ...

بالطبع لا يزال بإمكانك إزالة هذا القفل بسهولة ...

دعونا ننظر إلى ما هو هذا القفل بالضبط وكيف يعيّنه WP:

function wp_set_post_lock( $post_id ) {
    if ( ! $post = get_post( $post_id ) ) {
        return false;
    }
 
    if ( 0 == ( $user_id = get_current_user_id() ) ) {
        return false;
    }
 
    $now = time();
    $lock = "$now:$user_id";
 
    update_post_meta( $post->ID, '_edit_lock', $lock );
 
    return array( $now, $user_id );
}

حسنًا ، لذلك يتم تخزينه في صورة ملف مخصص يُسمى "_edit_lock" ، لذلك ... فقط قم بإزالة هذا التعريف وسوف تتم إزالة القفل.

delete_post_meta( $post_id, '_edit_lock')
2
Krzysiek Dróżdż