it-swarm.asia

هل يمكنني تعيين بعض الصفحات الافتراضية ليتم إنشاؤها عند كل إنشاء مدونة جديدة

سيتم إنشاء صفحات مثل "حول" تلقائيًا عند إنشاء مدونة جديدة. وبالمثل ، أحتاج إلى بعض الصفحات الأخرى التي يجب أن تظهر تلقائيًا عند إنشاء مدونة في مواقع متعددة.

كيف يمكنني تكوين الصفحات الافتراضية المراد إنشاؤها باستخدام مدونة جديدة ضمن موقع متعدد المواقع؟

على سبيل المثال: إذا كان لدي موقع متعدد على example.com. يجب أن تحتوي كل مدونة يتم إنشاؤها ضمن هذا الموقع على الصفحة الرئيسية ، حول ، متجري ، عنواني.

6
user391

أوصي بإنشاء وظيفة في ملف jobs.php الخاص بك والذي يرتبط بربط الإجراء activate_blog. استخدم وظائف WordPress get_pages () لمعرفة ما إذا كانت صفحاتك الافتراضية موجودة. إذا لم يفعلوا ذلك ، قم بإنشائها باستخدام wp_insert_post .

add_action('activate_blog','my_default_pages');

function my_default_pages(){
    $default_pages = array('About','Home','My Store','My Address');
    $existing_pages = get_pages();

    foreach($existing_pages as $page){
        $temp[] = $page->post_title;
        }


    $pages_to_create = array_diff($default_pages,$temp);

    foreach($pages_to_create as $new_page_title){

            // Create post object
            $my_post = array();
            $my_post['post_title'] = $new_page_title;
            $my_post['post_content'] = 'This is my '.$new_page_title.' page.';
            $my_post['post_status'] = 'publish';
            $my_post['post_type'] = 'page';



            // Insert the post into the database
            $result = wp_insert_post( $my_post );

        }
        }

لاختبار هذه الوظيفة على موقعك ، حاول ضبط الخطاف على wp_head. سيتم تشغيله على كل صفحة يتم تحميلها وإدراج الصفحات غير الموجودة ، مع المحتوى في $ my_post ['post_content']. * هل يتم تشغيل ربط 'activate_blog' عند إنشاء المدونات في سياق متعدد المواقع؟ لا أدري، لا أعرف.*

ارجع إلى صفحة المخطوطة للحصول على wp_insert_post التي ربطتها للحصول على قائمة كاملة بالمعلمات الافتراضية المتاحة.

12
kevtrout

استخدم "wpmu_activate_blog" بدلاً من "activate_blog". عملت معي. شكر

2
user2325