ปัญหาในการเข้าคิวสไตล์ชุดรูปแบบของผู้ปกครองและเด็กด้วยวิธี Codex ที่แก้ไขแล้ว


9

โพสต์นี้แสดงคำถามสองสามข้อที่ฉันได้พบเกี่ยวกับการเปลี่ยนแปลงล่าสุดเกี่ยวกับวิธีการจัดคิวชีตสไตล์ชีทที่เกิดขึ้นในเธรดนี้และเธรดนี้

ปัญหาที่ฉันพบเกิดขึ้นในสถานการณ์การใช้งานทั่วไปโดยใช้ชุดรูปแบบหลักที่ใช้กันอย่างแพร่หลายและได้รับการดูแลเป็นอย่างดีซึ่งเป็นธีมลูกแบบเฉพาะที่พร้อมติดตั้ง WP 4.0 functions.php ของชุดรูปแบบลูกของฉันประกอบด้วยwp_enqueue_styleฟังก์ชันตามรายละเอียดใน Codexเท่านั้น

โปรดทราบว่าในขณะที่รหัสที่อ้างถึงด้านล่างนี้ใช้เฉพาะกับชุดรูปแบบนี้ส่วนใหญ่จะใช้รูปแบบการเข้ารหัสปัจจุบันที่ใช้โดยธีมหลัก นอกจากนี้ประเด็นที่น่าเป็นห่วงของฉันมักจะซ้ำซ้อนกับชุดรูปแบบของผู้ปกครองจำนวนมากในขณะนี้อยู่ในป่า นอกจากนี้คำถามที่เพิ่มขึ้นเหล่านี้สามารถใช้งานได้ในระดับสากลไม่ว่าจะใช้ธีมหลักใด

ปัญหาที่ 1: สองคน

การตั้งค่าที่แนะนำ:

ธีมหลักคือการจัดคิวสไตล์และสคริปต์โดยใช้wp_enqueue_scriptshook ส่วนที่เกี่ยวข้องจะเป็นดังนี้:

add_action('wp_enqueue_scripts', 'parent_theme_function_name');
function parent_theme_function_name() {
    wp_register_style( 'avia-style' ,  $child_theme_url."/style.css", array(),  '2', 'all' );
    wp_enqueue_style( 'avia-base');
    if($child_theme_url !=  $template_url) { wp_enqueue_style( 'avia-style'); }
}

ชุดรูปแบบลูกของฉันจัดfunctions.phpคิวสไตล์ต่อการเปลี่ยนแปลง codex ล่าสุด:

add_action( 'wp_enqueue_scripts', 'enqueue_parent_theme_style' );
function enqueue_parent_theme_style() {
    wp_enqueue_style( 'dm-parent-style', get_template_directory_uri().'/style.css' );
}

บันทึก ID ต่อไปนี้ตามที่ใช้โดยรหัสอ้างอิง:

  • id='dm-parent-style-css' เป็นสไตล์ชีทของธีมหลักตามที่จัดทำโดยฟังก์ชันธีมลูกของฉัน
  • id='avia-style-css' เป็นสไตล์ชีทของชุดรูปแบบลูกของฉันตามที่จัดทำโดยฟังก์ชันธีมหลัก
  • id='dm-child-style-css' เป็นสไตล์ชีทของชุดรูปแบบลูกของฉันตามที่กำหนดโดยฟังก์ชันชุดรูปแบบลูกของฉัน

ผลลัพธ์:

เมื่อดูอย่างรวดเร็วครั้งแรกทุกอย่างใช้ได้ดีโดยมี<head> แสดงลำดับต่อไปนี้:

<link rel='stylesheet' id='dm-parent-style-css' href='testinstall.dev/wp-content/themes/enfold/style.css?ver=4.0' type='text/css' media='all' />
<!-- Multiple individual parent theme styles here -->
<link rel='stylesheet' id='avia-style-css' href='testinstall.dev/wp-content/themes/child-theme/style.css?ver=2' type='text/css' media='all' />

หลังจากติดตั้งปลั๊กอินคำสั่งเข้าคิวจะเปลี่ยนเป็นดังนี้:

<link rel='stylesheet' id='dm-parent-style-css' href='testinstall.dev/wp-content/themes/enfold/style.css?ver=4.0' type='text/css' media='all' />
<!-- Multiple individual parent theme styles here -->
<link rel='stylesheet' id='avia-style-css' href='testinstall.dev/wp-content/themes/child-theme/style.css?ver=2' type='text/css' media='all' />
<!-- Pesky plugin styles -->

ในที่สุดผมต้อง CSS ธีมของเด็กที่จะโหลดหลังจากปลั๊กอินใด ๆ ดังนั้นฉันถูกบังคับให้เพิ่มจำนวนให้ความสำคัญกับการทำงานในรูปแบบที่บุตรหลานของฉัน(ดูการอภิปรายก่อนหน้านี้เกี่ยวกับจำนวนลำดับความสำคัญ)

เนื่องจากฟังก์ชั่นของฉันทำให้ css ของธีมหลักเท่านั้นผลลัพธ์ที่ได้คือตอนนี้css ของธีมถูกย้ายไปที่จุดสิ้นสุดทำให้เหลือ css ของธีมลูกของฉันในสถานการณ์ที่เลวร้ายยิ่งกว่าเดิม

<!-- Multiple individual parent theme styles here -->
<link rel='stylesheet' id='avia-style-css' href='testinstall.dev/wp-content/themes/child-theme/style.css?ver=2' type='text/css' media='all' />
<!-- Pesky plugin styles -->
<link rel='stylesheet' id='dm-parent-style-css' href='testinstall.dev/wp-content/themes/enfold/style.css?ver=4.0' type='text/css' media='all' />

ตอนนี้ฉันถูกบังคับให้ต้องจัดให้เข้ากับสไตล์ธีมลูกของฉันเช่นกันเพื่อให้แน่ใจว่ามันถูกย้ายกลับไปที่ด้านหน้าของบรรทัดทำให้เกิดปัญหาดังกล่าวของ twoqueueing (คำใหม่?) ธีมเด็ก css

การตั้งค่าที่เลิกใช้:

ฟังก์ชันที่แก้ไขในธีมลูก:

add_action( 'wp_enqueue_scripts', 'enqueue_parent_theme_style', 99 );
function enqueue_parent_theme_style() {
    wp_enqueue_style( 'dm-parent-style', get_template_directory_uri().'/style.css' );
    wp_enqueue_style( 'dm-child-style', get_stylesheet_directory_uri().'/style.css' );
}

ผลลัพธ์:

ผลิตลำดับต่อไปนี้ใน<head>:

<!-- Multiple individual parent theme styles here -->
<link rel='stylesheet' id='avia-style-css' href='testinstall.dev/wp-content/themes/child-theme/style.css?ver=2' type='text/css' media='all' />
<!-- Pesky plugin styles -->
<link rel='stylesheet' id='dm-parent-style-css' href='testinstall.dev/wp-content/themes/enfold/style.css?ver=4.0' type='text/css' media='all' />
<link rel='stylesheet' id='dm-child-style-css' href='testinstall.dev/wp-content/themes/child-theme/style.css?ver=2' type='text/css' media='all' />

แม้ว่าการรวมสไตล์ชีทของเด็กในฟังก์ชั่นของฉันทำให้ได้รับการจัดคิวสองครั้ง แต่ IMHO ที่นิยมใช้การเข้ารหัสภายใต้สมมติฐานว่าธีมหลักจะจัดคิวสไตล์เด็กของเราให้เราอย่างเหมาะสม ขึ้นอยู่กับ ID ที่กำหนดให้กับสไตล์ที่จัดคิวแต่ละรายการปรากฏว่าธีมพาเรนต์จัดคิวมันไม่ใช่อะไรใน WP Core

Shivm ของฉัน:

แม้ว่าฉันจะไม่ค่อยแนะนำสิ่งนี้เป็นวิธีที่แนะนำ (และฉันมั่นใจว่า devs ที่มีประสบการณ์การเข้ารหัสมากกว่าที่ฉันจะคร่ำครวญในการแก้ปัญหานี้) แต่ฉัน dequeued ID ของธีมหลัก (ใช้ในการเข้ารูปแบบธีมชุดลูก) ในไฟล์ฟังก์ชันของธีมลูกของฉันตามที่แสดง:

add_action( 'wp_enqueue_scripts', 'enqueue_parent_theme_style', 99 );
function enqueue_parent_theme_style() {
    wp_enqueue_style( 'dm-parent-style', get_template_directory_uri().'/style.css' );
    wp_dequeue_style( 'avia-style' );
    wp_enqueue_style( 'dm-child-style', get_stylesheet_directory_uri().'/style.css' );
}

ผลลัพธ์:

วิธีนี้แก้ไขปัญหาที่เกิดขึ้นส่งผลให้:

<!-- Multiple individual parent theme styles here -->
<!-- Plugin styles -->
<link rel='stylesheet' id='dm-parent-style-css' href='testinstall.dev/wp-content/themes/enfold/style.css?ver=4.0' type='text/css' media='all' />
<link rel='stylesheet' id='dm-child-style-css' href='testinstall.dev/wp-content/themes/child-theme/style.css?ver=2' type='text/css' media='all' />

แน่นอนว่าสิ่งนี้จำเป็นต้องรู้ ID ที่ใช้โดยชุดรูปแบบหลักซึ่งจำเป็นต้องใช้อะไรทั่วไปที่มากกว่าเพื่อใช้เป็นวิธีการพัฒนาชุดรูปแบบลูกมาตรฐาน

ปัญหาที่ 2: ย้ายชุดลูกสไตล์

(ดูเหมือนยากที่จะเชื่อว่าสิ่งนี้ไม่ได้เกิดขึ้นในเธรดอื่นแม้ว่าฉันจะไม่เห็นรายการใด ๆ ที่เฉพาะเจาะจงเมื่อดู ... ถ้าฉันพลาดก็รู้สึกฟรีเพื่อนำมาให้ความสนใจของฉัน)

ฉันไม่เคยใช้ค่าเริ่มต้นstyle.cssในไดเรกทอรีรากของชุดรูปแบบลูกสำหรับลักษณะชุดรูปแบบของฉัน - แน่นอนว่าต้องมี แต่ลักษณะที่แท้จริงทั้งหมดของฉันรวบรวมจาก SCSS เป็นไฟล์. css / minified แม้ว่าฉันจะรู้ว่านี่ไม่ใช่"บรรทัดฐานที่คาดหวัง"ในระดับสากลสำหรับการพัฒนาชุดรูปแบบเด็กนักพัฒนา WordPress ที่จริงจังที่สุดที่ฉันรู้จักก็ทำสิ่งที่คล้ายกัน แน่นอนว่านี้ต้องมีการเข้าคิวด้วยตนเองว่าสไตล์ชีทในฟังก์ชั่นของฉันไม่ว่าธีมหลักจะจัดให้มีหรือไม่ก็ตาม

เพื่อรวมมันทั้งหมดขึ้น ...

  1. มีความปลอดภัยหรือไม่ที่จะรวมสมมติฐานที่ว่าธีมผู้ปกครองจัดคิวสไตล์ธีมลูกให้ถูกต้องจากมุมมองของมาตรฐานธีมลูก?
  2. การลบลำดับความสำคัญอาจทำให้เกิดความสับสนมากขึ้นสำหรับส่วนหนึ่งของชุมชน WordPress เมื่อรูปแบบธีมลูกเริ่มถูกแทนที่ด้วยปลั๊กอิน เราคาดว่าชุดรูปแบบจะเขียนทับลักษณะ แต่ไม่มากกับปลั๊กอิน
  3. เมื่อใช้สไตล์ชีทที่กำหนดเองสำหรับสไตล์ธีมลูกจริง (ตามที่ควรจะใส่ไว้ในที่กำหนดไว้ล่วงหน้าstyle.css) การเข้าคิวไฟล์ด้วยตนเองนั้นมีความจำเป็น ในแง่ของการรักษาความต่อเนื่องในช่วงกว้างของนักพัฒนามันจะไม่เหมาะสมหรือไม่ที่จะสนับสนุนให้จัดสไตล์ชีทสำหรับเด็กด้วยตนเองโดยไม่คำนึงถึงความซ้ำซ้อนที่อาจเกิดขึ้นได้

ฉันแน่ใจว่ามีการอภิปรายเกี่ยวกับวิธีการจัดโครงสร้างความสัมพันธ์ระหว่างเด็กกับผู้ปกครอง ฉันไม่คิดว่ามันปลอดภัยที่จะคิดอะไรเกี่ยวกับธีมหลัก ฉันเองชอบโหลดสไตล์ในธีมเด็กด้วยตนเอง แต่นั่นคือการตัดสินใจที่คุณต้องทำเกี่ยวกับธรรมชาติของธีมเด็กและสื่อสารอย่างชัดเจน หากธีมลูกเป็นเพียงแค่การปรับแต่งภาพอย่างง่ายผู้ปกครองที่โหลดสไตล์ชีทของเด็กน่าจะดี แต่ถ้าธีมหลักเป็นเฟรมเวิร์กฉันจะไปยังธีมลูกโหลดสไตล์ชีท
Seamus Leahy

คำตอบ:


5

คำถามที่ 1

มีความปลอดภัยหรือไม่ที่จะรวมสมมติฐานที่ว่าธีมผู้ปกครองจัดคิวสไตล์ธีมลูกให้ถูกต้องจากมุมมองของมาตรฐานธีมลูก?

กฎทั่วไปของหัวแม่มือใช่ แต่คุณควรไม่เคยคิด ภัยพิบัติและความล้มเหลวในชีวิตส่วนใหญ่เกิดจากการตั้งสมมติฐานหรือข้อเท็จจริงตามข้อสันนิษฐาน

ข้อเท็จจริงโดยไม่มีข้อสันนิษฐาน

  • functions.php ของชุดรูปแบบลูกจะถูกโหลดก่อนจากนั้นให้ function.php ของผู้ปกครอง สิ่งนี้ทำให้แน่ใจได้ว่าสไตล์ชีทหลักของธีมพาเรนต์ถูกโหลดก่อนสไตล์ชีทหลักของธีมลูกจากโค้ดที่อัปเดตใน codex

  • ให้ดูที่ชุดรูปแบบที่ยี่สิบสอง wp_enqueue_style( 'twentytwelve-style', get_stylesheet_uri() );ความมหัศจรรย์ที่เกิดขึ้นที่นี่ นี่คือวิธีที่สไตล์ชีทหลักถูกจัดคิว เมื่อชุดรูปแบบแอ็คทีฟเป็นชุดรูปแบบหลัก style.css จะถูกโหลดจากชุดรูปแบบหลักซึ่งget_stylesheet_uri()จะชี้ไปที่ style.css ของไดเรกทอรีหลัก

  • เมื่อคุณเปลี่ยนเป็นธีมลูกget_stylesheet_uri()"เปลี่ยน" พา ธ ของธีมเพื่อชี้ไปที่ style.css ของธีมลูกตอนนี้หมายความว่าแทนที่จะwp_enqueue_style( 'twentytwelve-style', get_stylesheet_uri() );โหลดสไตล์ parent.css แทนตอนนี้โหลดสไตล์ลูก

  • สไตล์อื่นทั้งหมดจากธีมพาเรนต์จะโหลดตามปกติตามลำดับที่เขียน

หลุมบ่อ

  • รูปแบบอินไลน์และสไตล์ชีทที่เพิ่มไปยังเทมเพลตส่วนหัวของคุณโดยตรง ฉันได้ทำการทดสอบบางอย่างกับปัญหานี้แล้ว หากสไตล์ชีของผู้ปกครองไม่ได้ถูกจัดคิวการใช้wp_enqueue_scriptsและโหลดโดยตรงในส่วนหัวดังนั้นสไตล์ชีทหลักของธีมลูกจะถูกโหลดก่อน เพื่อเป็นการหลีกเลี่ยงปัญหาที่นี่ฉันได้แนะนำก่อนหน้านี้ให้คัดลอก header.php ของพาเรนต์ไปยังธีมลูกและลบการเรียกเหล่านั้น จากนั้นคุณจะต้องจัดคิวทั้งชุดรูปแบบชุดรูปแบบหลักและชุดรูปแบบและชุดรูปแบบอื่น ๆ ที่โหลดโดยตรงใน header.php ตามที่ decribed ในฟังก์ชันเสื่อมราคา OP

  • ฉันเจอสิ่งนี้ครั้งเดียวหรือสองครั้งที่สไตล์ (และสคริปต์) ถูกโหลดโดยตรงในส่วนหัวและด้วยเหตุนี้การโทรไปยังwp_headถูกละเว้น สิ่งนี้จะทำให้คุณเข้าฉากการกระทำล้มเหลวอย่างเงียบ ๆ ดังนั้นสไตล์ของคุณจะไม่แสดงขึ้นมา

  • กำหนดลำดับความสำคัญผิด ไม่จำเป็นต้องตั้งค่าลำดับความสำคัญเป็นทั้งการกระทำของผู้ปกครองและเด็กเมื่อคุณขอฟังก์ชั่น enqueueu ของคุณ เมื่อทั้งคู่มีลำดับความสำคัญเริ่มต้นเท่ากันกฎการมาก่อนมีผลก่อน สิ่งนี้จะทำให้มั่นใจได้ว่าลำดับการโหลดนั้นถูกต้อง

หมายเหตุถึงผู้ปกครองชุดรูปแบบ

วิธีการยอมรับที่เหมาะสมเพื่อเพิ่มสไตล์และสคริปต์ให้กับธีมคือผ่านwp_enqueue_scriptsเบ็ดการดำเนินการ อย่าเพิ่มสไตล์และสคริปต์ลงในเทมเพลตส่วนหัวโดยตรงและอย่าตั้งค่าลำดับความสำคัญใด ๆ ในการกระทำของคุณเมื่อเชื่อมโยงฟังก์ชันของคุณ

โหลดสไตล์ชีทหลักด้วยเสมอดังนี้:

wp_enqueue_style( 'twentytwelve-style', get_stylesheet_uri() );

สิ่งนี้จะทำให้แน่ใจได้ว่าสไตล์ชีทหลักของเด็กถูกโหลดเมื่อมีการใช้ธีมลูก

ความรับผิดชอบของคุณในฐานะเด็กที่ได้รับอนุญาต

  • ใช้เวลาของคุณและทำงานผ่านธีมหลัก รู้จักชุดรูปแบบหลักของคุณตรวจสอบให้แน่ใจว่าคุณพอใจกับโครงสร้างชุดรูปแบบและวิธีการใช้ฟังก์ชั่นและขอในธีม คุณไม่สามารถสร้างชุดรูปแบบลูกที่ประสบความสำเร็จได้หากคุณไม่มีความรู้ด้านในว่าชุดรูปแบบหลักทำงานอย่างไร เป็นความรับผิดชอบของคุณเพื่อให้แน่ใจว่าโหลดสไตล์และสคริปต์อย่างถูกต้องเพื่อให้โค้ดของคุณทำงานตามที่คาดไว้

  • แจ้งเตือนผู้สร้างธีมหลักของโค้ดใด ๆ ที่คุณไม่พอใจ ตัวอย่างเช่นหากผู้เขียนเพิ่มสไตล์ของเขาลงในส่วนหัวโดยตรงทำให้เขาตื่นตัวและแจ้งให้เขาทราบว่านี่เป็นวิธีที่ผิดในการทำมันและขอให้เขาแก้ไขสิ่งนี้ในอนาคต

คำถามที่ 2

การลบลำดับความสำคัญอาจทำให้เกิดความสับสนมากขึ้นสำหรับส่วนหนึ่งของชุมชน WordPress เมื่อรูปแบบธีมลูกเริ่มถูกแทนที่ด้วยปลั๊กอิน เราคาดว่าชุดรูปแบบจะเขียนทับลักษณะ แต่ไม่มากกับปลั๊กอิน

น่าเสียดายที่ไม่มีวิธีการโดยตรงในการปกป้องสิ่งนี้ ประเด็นของความเป็นจริงที่นี่คือรูปแบบปลั๊กอินไม่ควรเขียนทับรูปแบบธีมเริ่มต้นโดยไม่ได้รับความยินยอมจากผู้ใช้ ในความคิดของฉันนี่เป็นเพียงการปฏิบัติที่ไม่ดีหรือไม่ดีจากผู้เขียนปลั๊กอิน ฉันขอแนะนำว่าในกรณีเช่นนี้ให้ติดต่อผู้สร้างปลั๊กอินและทำให้เขาแจ้งเตือนเกี่ยวกับสิ่งนี้

นอกจากนี้คุณยังมีตัวเลือกในการถอนและถอนการลงทะเบียนสไตล์ (และสคริปต์) ที่คุณไม่ต้องการหรือที่คุณต้องการเปลี่ยนลำดับความสำคัญของและ requeueing และลงทะเบียนอีกครั้งในรหัสของคุณด้านบน (ซึ่งดีอย่างสมบูรณ์) เพียงทราบเกี่ยวกับshivmของคุณมันเป็นวิธีที่ดีที่สุดในการ dequeue และยกเลิกการลงทะเบียนสไตล์และสคริปต์

คำถาม 3

เมื่อใช้สไตล์ชีทที่กำหนดเองสำหรับรูปแบบธีมลูกที่แท้จริง (ตามที่ควรจะใส่ไว้ใน style.css ที่กำหนดไว้ล่วงหน้า) การเข้าคิวไฟล์ด้วยตนเองนั้นมีความจำเป็น ในแง่ของการรักษาความต่อเนื่องในช่วงกว้างของนักพัฒนามันจะไม่เหมาะสมหรือไม่ที่จะสนับสนุนให้จัดสไตล์ชีทสำหรับเด็กด้วยตนเองโดยไม่คำนึงถึงความซ้ำซ้อนที่อาจเกิดขึ้นได้

ฉันไม่คิดว่าจะมีคำตอบขาวดำโดยตรงกับปัญหานี้ ฉันจะตอบด้วยการพูดทำสิ่งที่คุณพอใจตราบเท่าที่มันอยู่ในแนวทางที่ควบคุมการกระทำ

สไตล์ชีตไม่ได้อยู่ที่นั่นเพื่อเพิ่มฟังก์ชั่น แต่มีเพื่อเพิ่มประสบการณ์การมองเห็นให้กับผู้ใช้ สไตล์ยังส่งโดยตรงตามที่เป็นไปยังเบราว์เซอร์ที่มีการประมวลผล Wordpress ไม่มีบทบาทที่นี่

จากข้อเท็จจริงนี้ฉันไม่เห็นธงสีแดงที่คุกคามการโหลดสไตล์ชีทสองครั้ง ซึ่งอาจมีค่าใช้จ่ายไม่กี่ไมล์ในการทำงาน ตามจริงแล้วนอกเหนือจากนี้ฉันไม่แน่ใจจริงๆว่ามีการจัดการรายการซ้ำในเบราว์เซอร์ที่แตกต่างกันอย่างไร นี่คือสิ่งที่คุณเป็นผู้อ่านสามารถไปและทดสอบ

IMHO ซ้ำกันไม่เคยดีและควรหลีกเลี่ยงเสมอ ผมขอแนะนำว่าถ้าคุณอยากจะ enqueue สไตล์ชีตหลักของเด็กสำหรับสิ่งที่เคยเหตุผลด้วยตนเองคุณควรจะใช้รหัสของคุณในของคุณshivm ถอนออกและยกเลิกการลงทะเบียนรายการซ้ำที่เพิ่มโดยค่าเริ่มต้นจากนั้นทำการเรียกสไตล์ชีทตามปกติ

สิ่งหนึ่งที่ต้องจดจำเช่นกันฟังก์ชันการจัดคิวและการลงทะเบียนมี$dependancyพารามิเตอร์ที่คุณสามารถใช้ประโยชน์ได้ ดังนั้นจึงง่ายต่อการโหลดสไตล์ชีทรองและทำให้มันขึ้นอยู่กับสไตล์ชีทหลักของธีมลูกของคุณ

สรุปแล้ว

ตั้งแต่การอัพเดท codex เมื่อเร็ว ๆ นี้ผลตอบรับเป็นที่น่าอัศจรรย์และฉันอยากจะขอบคุณคำติชมของทุกคนเกี่ยวกับเรื่องนี้ ฉันต้องการสนับสนุนให้ทุกคนมีส่วนร่วมในความคิดเห็นใด ๆ กับคำถามนี้โดยเฉพาะ หากคุณมีอะไรที่จะเพิ่มหรือแสดงความคิดเห็นโปรดทำ


ปีเตอร์ขอบคุณสำหรับคำตอบของคุณอย่างละเอียด รับล้นในวันนี้ แต่ฉันมีความคิดบางอย่างขึ้นอยู่กับสิ่งที่คุณพูดซึ่งฉันหวังว่าจะเพิ่มในช่วงเย็นวันนี้
dMcClintock

กรุณาทำ. ฉันอยากจะได้ยินความคิดอื่น ๆ เกี่ยวกับเรื่องนี้ คำตอบของฉันคือความเห็นของฉันจากการทดสอบดังนั้นนี่ไม่ใช่อัลฟาและโอเมก้า รอคอยที่จะเข้าใจของคุณ :-)
Pieter Goosen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.