ไร้สาระนุกรม:การเขียนโค้ดขั้นสูง

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

สำหรับวิธีการเขียนโค้ดที่เกี่ยวกับแม่แบบโดยเฉพาะ ให้ดูที่ ไร้สาระนุกรม:วิธีการสร้างแม่แบบ

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

สารบัญ

เริ่มเขียนโค้ดขั้นสูง

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

ในโค้ดขั้นสูงนั้น มีวิธีการเขียนแบบเดียวกับข้อความทั่วไป โดยก่อนที่คุณจะเริ่มเขียนโค้ดขั้นสูง คุณควรจะศึกษาวิธีการเขียนข้อความในไร้สาระนุกรมก่อน ที่ ไร้สาระนุกรม:เริ่มเขียนบทความในไร้สาระนุกรม


เบ็ดเตล็ด

ต้องการ คำสั่ง ผลที่แสดง หมายเหตุ
เปลี่ยนทาง #REDIRECT[[ชื่อบทความ]] โค้ดนี้ต้องใส่ไว้ตอนบนสุดของบทความ ดูข้อมูลเพิ่มเติมที่ ไร้สาระนุกรม:หน้าเปลี่ยนทาง
แสดงชื่อภาษาโดยรหัสภาษาที่คุณระบุ(ภาษาในเครือข่ายไร้สาระนุกรม) {{#language:th}}{{#language:zh}} th และ zh คือรหัสภาษาที่ระบุ(ภาษาเทยและจีนกลาง ตามลำดับ) ไทย
汉语
แสดงภาษาที่เว็บนี้ใช้ {{CONTENTLANG}}{{#language: {{CONTENTLANG}} }} th
ไทย
แสดงชื่อเว็บ {{SITENAME}} ไร้สาระนุกรม สำหรับเว็บนี้จะแสดง ไร้สาระนุกรม เสมอ
แสดงชื่อหน้าพิเศษตามระบบ[1] {{#special:recentchanges}}recentchanges คือชื่อหน้าพิเศษที่ระบุ พิเศษ:ปรับปรุงล่าสุด
เรียกใช้แท็ก {{#tag:tagname}}และ{{#tag:tagname|...}} ฟังก์ชั่นนี้จะเหมือนการใช้แท็กทั่วไป เช่น {{#tag:tagname}}จะได้

<tagname />
และ{{#tag:tagname|ค่า....ค่า....ค่า....ค่า}}จะได้
<tagname>ค่า....ค่า....ค่า....ค่า</tagname>

แสดงเวอร์ชันของมีเดียวิกิที่ไร้สาระนุกรมกำลังใช้อยู่ในขณะนี้ {{CURRENTVERSION}} 1.25.2
แสดงตัวแปรระบบของไร้สาระนุกรม ตามที่ระบุ {{#arg:action|ไม่มีตัวแปรนี้}}
  • "action" คือตัวแปรระบบที่ระบุ(ตัวแปรนี้จะเก็บค่าการกระทำในขณะนี้ไว้ เช่น edit, purge ฯลฯ แต่จะเป็นค่าว่างเมื่อเรียกดูหน้าเฉยๆ)
  • พารามิเตอร์ที่สอง จะแสดงออกมาเมื่อตัวแปรนี้ไม่มีอยู่จริง หรือเป็นค่าว่าง
ไม่มีตัวแปรนี้

รูปแบบข้อมูลและการแสดงผล

1 โดยปกติแล้ว สารบัญจะแสดงก็ต่อเมื่อมีหัวเรื่องรอง(หัวเรื่องอันดับสอง) มากกว่า 3 หัวเรื่อง และจะแสดง ถัดจากเนื้อหาในส่วนแรกสุด โดยฟังก์ชั่นทั้งสองจะขัดกับกฏข้างต้น
(ทั้งนี้ก็ขึ้นอยู่กับการตั้งค่าส่วนตัวด้วย)

ต้องการ คำสั่ง ผลที่แสดง หมายเหตุ
การตั้งค่าหน้า
ซ่อนสารบัญ1 __NOTOC__ สารบัญจะไม่แสดงเลย ถึงแม้จะมีหัวเรื่องรองครบ 3 หัวเรื่องแล้วก็ตาม
แสดงสารบัญโดยแสดงที่ตำแหน่งอื่นๆ1 __TOC__ CodeToc.jpg สารบัญจะแสดงตลอด ตามตำแหน่งที่วางโค้ดนี้ไว้ และไม่จะเป็นต้องมีหัวเรื่องรองครบ 3 อัน
แสดงสารบัญโดยแสดงที่ตำแหน่งปกติของมัน1[2] __FORCETOC__ สารบัญจะแสดงตลอด ตามตำแหน่งปกติ(ต่อจากส่วนแรกสุดของหน้า) และไม่จะเป็นต้องมีหัวเรื่องรองครบ 3 อัน
ซ่อนลิงก์แก้ไขเฉพาะส่วน __NOEDITSECTION__ ไม่มีการแสดงผลอื่นๆ ปรากฏ เช่นเดียวกับการซ่อนสารบัญ
เพิ่มปุ่ม + สำหรับสร้างหัวข้อใหม่ __NEWSECTIONLINK__ สามารถดูตัวอย่างที่หน้าพูดคุย โดยจะมีปุ่ม + อยู่ใกล้ๆกับปุ่มแก้ไข
ซ่อนปุ่ม + สำหรับสร้างหัวข้อใหม่ในหน้าพูดคุย __NONEWSECTIONLINK__ ใช้ในหน้าพูดคุย ปุ่ม + จะไม่ปรากฏขึ้น
ซ่อนหน้านี้จากการค้นหา __NOINDEX__ หน้าที่มีโค้ดนี้อยู่จะไม่ปรากฏในผลการค้นหา
กำหนดคำสำคัญให้กับหน้านี้ {{DEFAULTSORT:คำสำคัญ}} มีผลเหมือนกับการกำหนด [[หมวดหมู่:<ชื่อหมวดหมู่>|<คำสำคัญ>]] แต่การกำหนดด้วยคำสั่งนี้จะมีผลต่อทุกๆ หมวดหมู่ โดยที่ไม่ต้องกำหนดซ้ำ
เปลี่ยนชื่อแสดงผลของหน้านี้ มีวิธีการใช้งานดังนี้ : {{DISPLAYTITLE:ชื่อหน้าที่ต้องการ}}
อย่างเช่น {{DISPLAYTITLE:{{PAGENAME}} (คู่มือ)}}
Changetitle.png

ชื่อหน้าที่แสดงผลจะเปลี่ยนไปตามที่กำหนด
ไม่ใช่การเปลี่ยนชื่อหน้าจริงๆ แต่เป็นการเปลี่ยนชื่อหน้าเฉพาะในการแสดงผลเท่านั้น
เปลี่ยนโลโก้ไร้สาระนุกรมให้กับหน้านี้ มีวิธีการใช้งานดังนี้ : {{#logotipo: URL ของไฟล์ภาพนั้นๆ}}
อย่างเช่น {{#logotipo: http://upload.wikimedia.org/wikipedia/commons/7/70/Example.png}}
Changelogo-example.png ไม่ใช่การเปลี่ยนโลโก้ของระบบไร้สาระนุกรมจริงๆ แต่เป็นการเปลี่ยนโลโก้เฉพาะในการแสดงผลเท่านั้น
กำหนดคำสำคัญเพื่อการจัดอันดับของเซิร์ซเอนจิน <keywords content="คำสำคัญ" /> ไม่มีการแสดงผลอื่นๆ" เซิร์ซเอนจินโดยทั่วไปแล้วจะจัดอันดับจากคำสำคัญที่กำหนด การกำหนดด้วยแท็กนี้ก็จะเป็นการกำหนดคำสำคัญให้เซิร์ซเอนจินทราบ เพื่อการจัดอันดับการค้นหา

(ในทางเทคนิก แท็กนี้จะถูกแปลเป็น HTML ในรูป <meta name="keywords" content="คำสำคัญ" />)
อนึ่ง ปัจจุบันมึงเกิลจะไม่รองรับวิธีการกำหนดคำสำคัญแบบนี้แล้ว[3]

ตั้งค่าหมวดหมู่
ซ่อนการแสดงผลหมวดหมู่นี้ในหน้าบทความ __HIDDENCAT__ หมวดหมู่ที่มีโค้ดนี้อยู่ จะไม่ปรากฏชื่อที่รายการหมวดหมู่ ในหน้าหรือบทความที่อยู่ในหมวดหมู่นี้
เปลี่ยนการแสดงผลรายการรูปภาพหรือสื่อในหมวดหมู่ให้กลายเป็นรายการลิงก์แทน __NOGALLERY__
การแปลงข้อความ
เปลี่ยนเป็นตัวพิมพ์เล็กทั้งหมด ในข้อความภาษาปะกิด3 {{lc:MESSage}} message
เปลี่ยนเป็นตัวพิมพ์เล็กที่ตัวอักษรแรก ในข้อความภาษาปะกิด3 {{lcfirst:MESSAGE}} mESSAGE
เปลี่ยนเป็นตัวพิมพ์ใหญ่ทั้งหมด ในข้อความภาษาปะกิด3 {{uc:message}} MESSAGE
เปลี่ยนเป็นตัวพิมพ์ใหญ่ที่ตัวอักษรตัวแรก ในข้อความภาษาปะกิด3 {{ucfirst:message}} Message
จัดกลุ่มหลักตัวเลข {{formatnum:11111111111111.0000000}} 11,111,111,111,111.0000000
ยกเลิกการจัดกลุ่มหลักตัวเลข {{formatnum:11,111,111,111,111.0000000|R}} 11111111111111.0000000
แสดงข้อความตามจำนวน(เอกพจน์และพหูพจน์) {{plural:2|is|are}} 2 คือจำนวน, is คือคำที่จะแสดงเมื่อจำนวนเท่ากับ 1(เอกพจน์) และ are คือคำที่จะแสดงเมื่อจำนวนมากกว่า 1(พหูพจน์) are
อื่นๆ
ยกเลิกการย่อหน้า <div>ข้อความ</div>
ข้อความ
แสดงผลให้ชัดเจนได้ในบทความปกติ
อนึ่ง ข้อความที่ต่อท้ายจาก </div> จะถูกตัดไปอยู่บรรทัดใหม่
แทรกสไตล์ชีต(CSS) ลงในหน้า <css>โค้ดสไตล์ชีต</css> จะไม่มีการแสดงผลออกมาเลย การใช้งานคล้ายกับการแทรกลงในไฟล์(เช่น Common.css) แต่สามารถใช้ได้ในเฉพาะหน้าที่ใส่โค้ดนี้เท่านั้น(จะต่างจากการแทรกลงในมีเดียวิกิ คือ สามารถใช้ได้ในทุกหน้า)

การทำงานเกี่ยวกับภาพ

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

ทำให้ภาพหรือไอคอนมีลิงก์

สามารถทำได้โดยใช้ฟังก์ชั่น {{#icon:}} ซึ่งมีพารามิเตอร์(สิ่งที่ต้องกำหนด)อยู่ 4 ตัว ดังนี้

{{#icon: ชื่อไฟล์ภาพ | คำอธิบายของภาพ | ขนาดภาพ | หน้าที่จะลิงก์ไปถึง }}

  • ชื่อไฟล์ภาพ ชื่อไฟล์ของภาพที่อัปโหลดบนไร้สาระนุกรม(ไม่ใช่ไฟล์จากเว็บอื่น) ไม่ต้องมีกลุ่มชื่อ(อย่างเช่น "ไฟล์:", "ภาพ:")นำหน้า
  • คำอธิบายของภาพ เป็นข้อความที่จะปรากฏเมื่อนำเมาส์ไปชี้(ศัพท์คนมีการศึกษาเรียกว่า ทูลทิป) ในลักษณะเดียวกับแม่แบบ {{T}}
  • ขนาดภาพ ขนาดของภาพ มีหน่วยเป็นพิกเซล รูปแบบคือ ##px
    • เมื่อละเว้น ฟังก์ชั่นนี้จะใช้ขนาดภาพตามค่าตั้งต้น
  • หน้าที่จะลิงก์ไปถึง ชื่อหน้าบนไร้สาระนุกรมที่ต้องการให้ภาพนี้ลิงก์ไป

ค่าเหล่านี้สามารถละเว้นบางตัวได้ ยกเว้นชื่อไฟล์ภาพ เมื่อละเว้น ฟังก์ชั่นจะใช้ค่าที่เหมาะสมตามนั้น

ตัวอย่างเช่น :

คำสั่ง ผลที่แสดง
{{#icon: Example.png }}แสดงรูปภาพเฉยๆ (จะไม่มีการสร้างลิงก์)
{{#icon: Example.png | คำอธิบายภาพ }}แสดงรูปภาพแบบมีคำอธิบายภาพ คำอธิบายภาพ
{{#icon: Example.png | คำอธิบายภาพ | 100px }}แสดงรูปภาพแบบมีคำอธิบายภาพ และกำหนดขนาดภาพ คำอธิบายภาพ
{{#icon: Example.png | คำอธิบายภาพ | 100px | ไร้สาระนุกรม:สนทนาปัญหาโลกแตก }}เพิ่มลิงก์ไปยังหน้า ไร้สาระนุกรม:สนทนาปัญหาโลกแตก คำอธิบายภาพ

ข้อมูลเกี่ยวกับหน้า

สำหรับข้อมูลหน้าได้แก่ ชื่อหน้า, สถิติเกี่ยวกับหน้า จะกล่าวถึงในหมวดหมู่ที่เกี่ยวข้องนั้นๆ แทน

ต้องการ คำสั่ง ผลที่แสดง หมายเหตุ
แสดงผู้ใช้ที่แก้ไขหน้านี้ครั้งล่าสุด {{REVISIONUSER}} Pakorn
แสดงรุ่นการแก้ไขครั้งล่าสุดของหน้านี้ {{REVISIONID}} 130203
แสดงระดับการล็อกของหน้านี้(ล็อกการแก้ไข)1 {{PROTECTIONLEVEL:edit}} autoconfirmed
แสดงระดับการล็อกของหน้านี้(ล็อกการเปลี่ยนชื่อ)1 {{PROTECTIONLEVEL:move}} autoconfirmed

1 ฟังก์ชั่นเหล่านี้จะคืนค่าออกมาได้ 2 อย่าง ดังต่อไปนี้

  • autoconfirmed กึ่งล็อก (ผู้ใช้ที่ลงทะเบียนแล้วยังสามารถแก้ไขหรือเปลี่ยนชื่อได้)
  • sysop ล็อกเต็มรูปแบบ(ผู้ดูแลระบบสามารถแก้ไขได้เท่านั้น)

อนึ่ง ฟังก์ชั่นนี้จะไม่ส่งค่าออกมาถ้าหน้านี้ไม่ได้มีการล็อก

ข้อมูลเกี่ยวกับผู้ใช้

ต้องการ คำสั่ง ผลที่แสดง หมายเหตุ
แสดงหมายเลขไอพีของผู้ใช้นี้ {{#ip:}} 54.92.164.184
แสดงชื่อรูปแบบหน้าตา(Skin) ที่ผู้ใช้นี้เลือกใช้ {{#skin:}} vector
แสดงเพศของผู้ใช้ที่กำหนด {{gender:Sahayfont

|สหายฟอนต์เป็นผู้ชาย
|สหายฟอนต์เป็นผู้หญิง
|สหายฟอนต์ไม่ได้ระบุเพศไว้
}}

  • Sahayfont ชื่อผู้ใช้ที่กำหนด
  • สำหรับในพารามิเตอร์ที่ 2, 3 และ 4 เป็นการระบุข้อความที่จะแสดงเมื่อผู้ใช้ที่ระบุเป็นผู้ชาย,ผู้หญิง หรือไม่ได้ระบุเพศไว้ ตามลำดับ
  • (ฟังก์ชั่นนี้จะยึดตามการตั้งค่าในการตั้งค่าส่วนตัว)
สหายฟอนต์ไม่ได้ระบุเพศไว้
แสดงจำนวนการแก้ไขของผู้ใช้ที่กำหนด
  1. {{#editcount:Sahayfont|0}}
  2. {{#editcount:Sahayfont}}

Sahayfont คือชื่อผู้ใช้ที่กำหนด

  • สำหรับข้อที่ 1 เป็นการแสดงจำนวนการแก้ไขในเนมสเปซตามที่เราระบุ ซึ่ง 0 คือเลขเนมสเปซที่กำหนด(เนมสเปซหลัก)
  • สำหรับข้อที่ 2 เป็นการแสดงจำนวนการแก้ไขทั้งหมดในไร้สาระนุกรม
{{#editcount:Sahayfont|0}}
{{#editcount:Sahayfont}}

วันที่และเวลา[4][5]

การแสดงวันที่โดยใช้โค้ดวิกิจะมีระบบวันที่ 2 แบบ คือ วันที่ปัจจุบัน และ วันที่แก้ไขล่าสุดของบทความ

วันที่ปัจจุบัน

คำอธิบาย คำสั่ง ผลที่แสดง หมายเหตุ
ปี
ปี {{CURRENTYEAR}} 2018
เดือน
เลขเดือน(มีเลขศูนย์) {{CURRENTMONTH}} 09
ชื่อเดือน {{CURRENTMONTHNAME}} กันยายน
ชื่อเดือน(แบบย่อ) {{CURRENTMONTHABBREV}} ก.ย.
วัน
เลขวันภายในเดือน {{CURRENTDAY}} 22
เลขวันภายในเดือน(2 หลัก) {{CURRENTDAY2}} 22
เลขวันภายในสัปดาห์ {{CURRENTDOW}} 6 นับเริ่มจากวันอาทิตย์ โดยเริ่มที่เลข 0
ชื่อวัน {{CURRENTDAYNAME}} วันเสาร์
เวลา
เวลา {{CURRENTTIME}} 08:09 แสดงผลแบบ 24 ชั่วโมง(รูปแบบ "hh:mm")
ชั่วโมง {{CURRENTHOUR}} 08 แสดงผลแบบ 24 ชั่วโมง(ตัวเลขสองหลัก)
นาที1 {{#time:i}} 09 แสดงผลเริ่มจาก 00 จนถึง 59(สองหลัก)
วินาที1 {{#time:s}} 35 แสดงผลเริ่มจาก 00 จนถึง 59(สองหลัก)

1 สำหรับฟังก์ชั่น #time จะกล่าวต่อจากนี้

ฟังก์ชั่นตามที่กล่าวมาจะแสดงเวลาตามเวลาสากลเชิงพิกัด ถ้าต้องการแสดงเวลาท้องถิ่น(ตามการตั้งค่าส่วนตัวของแต่ละผู้ใช้) ให้ใช้คำว่า "LOCAL" แทน "CURRENT" เช่น

  • {{LOCALTIME}} = 15:09
  • {{LOCALHOUR}} = 15

สำหรับ {{#time:}} ให้เปลี่ยนเป็น {{#timel:}} แทน ซึ่งจะแสดงเวลาท้องถิ่นเช่นเดียวกัน

  • {{#timel:i}} = 09
  • {{#timel:s}} = 35

เวลาแก้ไขล่าสุด

คำอธิบาย คำสั่ง ผลที่แสดง หมายเหตุ
ปี {{REVISIONYEAR}} 2010
เดือน {{REVISIONMONTH}} 01 แสดงผลเป็นเลข
วัน {{REVISIONDAY}} 16
วัน(สองหลัก) {{REVISIONDAY2}} 16
Time Stamp {{REVISIONTIMESTAMP}} 20100116081626

สถิติ

ฟังก์ชั่นสถิติจะแสดงผลออกมาเป็นตัวเลข โดยที่จะจัดรูปแบบหลักของตัวเลข (เช่น 31,419) การยกเลิกจัดรูปแบบสามารถทำได้ดังนี้[6]

  • เพิ่ม :R เข้าไปหลังชื่อฟังก์ชั่น เช่น {{NUMBEROFPAGES:R}} = 31419
  • เพิ่ม |R เข้าไปหลังค่าที่ระบุ เช่น {{PAGESIZE:ปังย่า|R}} = 79662
คำอธิบาย คำสั่ง ผลที่แสดง หมายเหตุ
สถิติของระบบโดยรวม
จำนวนหน้าทั้งหมด {{NUMBEROFPAGES}} 31,419
จำนวนบทความ(หน้าในเนมสเปซหรือกลุ่มชื่อ หลัก) {{NUMBEROFARTICLES}} 3,350
จำนวนไฟล์ที่อัปโหลด {{NUMBEROFFILES}} 11,407
จำนวนครั้งที่มีการแก้ไขทั้งหมดในระบบ {{NUMBEROFEDITS}} 238,099
จำนวนผู้ใช้ที่ลงทะเบียนแล้ว {{NUMBEROFUSERS}} 3,149
จำนวนผู้ดูแลระบบ(ผู้ใช้ที่ได้รับสิทธิ sysop และ bureaucrat) {{NUMBEROFADMINS}} 10
จำนวนผู้ใช้ที่กำลังใช้ไร้สาระนุกรม และเคยใช้แล้วภายใน 30 วัน {{NUMBEROFACTIVEUSERS}} 26 (ยังไม่พร้อมใช้งาน)
จำนวนครั้งที่เข้าชมหน้าต่างๆ ในไร้สาระนุกรม รวมกันทั้งหมด {{NUMBEROFVIEWS}} แม่แบบ:NUMBEROFVIEWS
สถิติอื่นๆ
จำนวนหน้าในกลุ่มชื่อที่ระบุ {{PAGESINNS:1}}1 คือหมายเลขกลุ่มชื่อที่ระบุ(ในที่นี้เป็นกลุ่มชื่อ พูดคุย) ฟังก์ชั่นนี้ต้องระบุกลุ่มชื่อเป็นตัวเลขเท่านั้น 852
จำนวนหน้าในหมวดหมู่ที่ระบุ {{PAGESINCAT:ชาวเกรียน}}ชาวเกรียน คือชื่อหมวดหมู่ที่ระบุ 184
ขนาดของหน้าที่ระบุ(แสดงผลเป็นไบต์) {{PAGESIZE:เกรียน}}'เกรียน คือหน้าที่ระบุ 78,545
จำนวนผู้ใช้ในกลุ่มผู้ใช้ที่กำหนด {{NUMBERINGROUP:checkuser}}checkuser คือกลุ่มผู้ใช้ที่ระบุ(กลุ่มผู้ใช้ที่มีตาปีศาจ) 10

ชื่อและการอ้างถึง

คำอธิบาย คำสั่ง ผลที่แสดง หมายเหตุ
ทั่วไป
ชื่อหน้านี้(ไม่แสดงกลุ่มชื่อ) {{PAGENAME}} การเขียนโค้ดขั้นสูง ถ้าหน้าปัจจุบันเป็นหน้าย่อย เช่น ns:x/y จะแสดงผล x/y
ชื่อเต็มของหน้านี้(แสดงกลุ่มชื่อ) {{FULLPAGENAME}} ไร้สาระนุกรม:การเขียนโค้ดขั้นสูง
ชื่อเต็มของหน้านี้ {{#arg:title}} ไร้สาระนุกรม:การเขียนโค้ดขั้นสูง จะแตกต่างกับฟังก์ชั่น {{FULLPAGENAME}} ตรงที่ว่า ถ้าหน้าปัจจุบันนั้นเปลี่ยนทางมาจากหน้าอื่น จะแสดงชื่อหน้าที่หน้าปัจจุบัน ได้เปลี่ยนทางมา
กลุ่มชื่อของหน้า {{NAMESPACE}} ไร้สาระนุกรม
การอ้างถึงหน้าเนื้อหา
กลุ่มชื่อ1 {{SUBJECTSPACE}} ไร้สาระนุกรม ถ้าหน้าปัจจุบันเป็น คุยเรื่องแม่แบบ:x จะแสดง แม่แบบ
ชื่อหน้า1 {{SUBJECTPAGENAME}} ไร้สาระนุกรม:การเขียนโค้ดขั้นสูง ถ้าหน้าปัจจุบันเป็น คุยเรื่องแม่แบบ:x จะแสดง แม่แบบ:x
การอ้างถึงหน้าพูดคุย
ชื่อหน้าพูดคุย2 {{TALKPAGENAME}} คุยเรื่องไร้สาระนุกรม:การเขียนโค้ดขั้นสูง
กลุ่มชื่อของหน้าพูดคุย2 {{TALKSPACE}} คุยเรื่องไร้สาระนุกรม
ระบบหน้าย่อย(Sub Page)
ชื่อหน้าย่อยปัจจุบัน3 {{SUBPAGENAME}} การเขียนโค้ดขั้นสูง ถ้าหน้าปัจจุบันเป็น ns:x/y จะแสดง y
ชื่อหน้าราก3 {{BASEPAGENAME}} การเขียนโค้ดขั้นสูง ถ้าหน้าปัจจุบันเป็น ns:x/y จะแสดง x

1 ฟังก์ชั้นเหล่านั้นจะเห็นผลได้ชัดเมื่อใช้ในหน้าพูดคุย

2 ฟังก์ชั้นเหล่านั้นจะเห็นผลได้ชัดเมื่อใช้ในหน้าเนื้อหา

3 ฟังก์ชั่นเหล่านั้นจะเห็นผลได้ชัดเมื่อใช้ในหน้าย่อย

ฟังก์ชั่นข้างต้นเหล่านี้จะแสดงผลข้อมูลสำหรับหน้าปัจจุบัน(โดยปกติ) สำหรับการใช้การเข้ารหัสยูอาร์แอล(URL-encoding) สามารถทำได้โดยการเติม E เข้าไปที่หลังชื่อฟังก์ชั่น เช่น {{FULLPAGENAMEE}} = ชี้เมาส์ที่นี่

นอกจากนี้ เราสามารถกำหนดชื่อหน้าที่ต้องการให้กับฟังก์ชั่นเหล่านี้ได้(ไม่ใช่ {{#arg:title}}) เพื่อให้ฟังก์ชั่นข้างต้นแสดงข้อมูลสำหรับหน้าที่ระบุ แทนที่จะเป็นของหน้านี้ อย่างเช่น

  • {{TALKPAGENAME:ไร้สาระนุกรม}} = พูดคุย:ไร้สาระนุกรม
  • {{TALKSPACE:ไร้สาระนุกรม}} = พูดคุย
  • {{BASEPAGENAME: ผู้ใช้:Gothichaos/อาณาจักรไร้สาระนุกรม }} = Gothichaos

การดัดแปลงชื่อ

ฟังก์ชั่น {{#rel2abs:}}

ฟังก์ชั่นนี้ใช้เปลี่ยนชื่อหน้าย่อย(เช่น "/x") เป็นชื่อหน้าเต็ม ลองดูตัวอย่างดังต่อไปนี้

  • ถ้าฟังก์ชั่นนี้ใช้อยู่ในหน้า ns:a/b เมื่อใช้ {{#rel2abs:/w}} จะแสดง ns:a/b/w
  • ถ้าฟังก์ชั่นนี้ใช้อยู่ในหน้า ns:a/b เมื่อใช้ {{#rel2abs:../w}} จะแสดง ns:a/w

ฟังก์ชั่น {{#titleparts:}}[7]

นี่คือฟังก์ชั่นสำหรับแสดงชื่อหน้าย่อยตามจำนวนที่ต้องการ โดยมีหลักการตาม "ระบบหน้าย่อย" โดยมีเครื่องหมาย "/" เป็นตัวแบ่ง ฟังก์ชั่นนี้มีการใช้งาน 2 แบบ การใช้งานแบบแรกคือการแสดงผลหน้าย่อยตามจะนวนที่ต้องการโดยเริ่มจากทางด้านซ้าย และแบบที่สองจะการแสดงหน้าย่อยที่ต้องการโดยกำหนดหน้าย่อยแรก และหน้าย่อยสุดท้ายที่ต้องการ

การใช้งานแบบแรก

{{#titleparts: ชื่อหน้า(หน้าใดก็ได้) | จำนวนหน้าย่อยที่ต้องการแสดง(ระบุเป็นเลข) }}

อย่างเช่น

  • {{#titleparts: ns:a/b/c/d/e | 1 }} = Ns:a
  • {{#titleparts: ns:a/b/c/d/e | 2 }} = Ns:a/b
  • {{#titleparts: ns:a/b/c/d/e | 3 }} = Ns:a/b/c

จากตัวอย่างข้างต้น จะเป็นการกำหนดชื่อหน้าในพารามิเตอร์ที่ 1 และกำหนดจำนวนหน้าย่อยที่จะแสดงลงในพารามิเตอร์ที่ 2 ให้กับฟังก์ชั่นนี้ ฟังก์ชั่นนี้จะคืนค่าเป็นชื่อหน้าย่อยเป็นจำนวนตามที่กำหนด แต่ทั้งนี้การกำหนดจำนวนหน้าย่อยเป็น 0 ไม่ได้หมายความว่าฟังก์ชั่นนี้จะไม่แสดงชื่อหน้าออกมาเลย แต่ฟังก์ชั่นจะเข้าใจว่าเราไม่ได้ทำการกำหนดค่าในพารามิเตอร์ที่ 2 ไว้ ซึ่งจะได้ผลตามตัวอย่างด้านล่างนี้

  • {{#titleparts: ns:a/b/c/d/e | 0 }} = Ns:a/b/c/d/e
  • {{#titleparts: ns:a/b/c/d/e }} = Ns:a/b/c/d/e

จะเห็นว่า ทั้งสองตัวอย่างด้านบน จะได้ผลเหมือนกัน

การใช้งานแบบที่สอง

{{#titleparts: ชื่อหน้า(หน้าใดก็ได้) | จำนวนหน้าย่อยที่จะแสดง | เลขลำดับหน้าย่อยที่ต้องการแสดง }}

ฟังก์ชั่นนี้มีประโยชน์ในการกำหนดช่วงของชื่อหน้าย่อยที่จะแสดง อย่างเช่นเราต้องการจะแสดงหน้าย่อยของหน้า ns:a/b/c/d/e โดยกำหนดช่วงเป็น(ตามที่ขีดเส้นใต้) ns:a/b/c/d/e เราก็สามารถใช้ฟังก์ชั่นได้ดังนี้

  • {{#titleparts: ns:a/b/c/d/e | 3 | 2 }}
    • 3 คือจำนวนหน้าย่อยที่ต้องการแสดง เนื่องจากตามตัวอย่างนี้ต้องการแสดงผลหน้าย่อยตามที่ขีดเส้นใต้ไว้ ซึ่งเป็น 3 หน้าย่อย
    • 2 คือเลขลำดับหน้าย่อยที่ต้องการแสดง("b" คือหน้าย่อยที่ 2 เมื่อกำหนดในพารามิเตอร์ที่สองเป็น "3" ฟังก์ชั่นนี้จะแสดงหน้าย่อยออกมา 3 หน้าถัดจาก b)
    • จากตัวอย่างข้างต้น จะได้ b/c/d

ลิงก์และที่อยู่

คำอธิบาย คำสั่ง ผลที่แสดง หมายเหตุ
ที่อยู่ของเว็บนี้ {{SERVER}} http://th.uncyclopedia.info
โดเมนเนม ของเว็บนี้ {{SERVERNAME}} th.uncyclopedia.info
ที่อยู่ของเว็บนี้ {{SERVER}} http://th.uncyclopedia.info
ที่อยู่ภายใน {{localurl:ชื่อหน้า|ข้อความต่อท้าย}} /index.php?title=%E0%B8%8A%E0%B8%B7%E0%B9%88%E0%B8%AD%E0%B8%AB%E0%B8%99%E0%B9%89%E0%B8%B2&ข้อความต่อท้าย
  • ในส่วนของ ชื่อหน้า จะถูกเข้ารหัสยูอาร์แอลโดยอัตโนมัติ
  • ในส่วนของ ข้อความต่อท้าย ไม่จำเป็นต้องใส่
ที่อยู่เต็ม {{fullurl:ชื่อหน้า|ข้อความต่อท้าย}} http://th.uncyclopedia.info/index.php?title=%E0%B8%8A%E0%B8%B7%E0%B9%88%E0%B8%AD%E0%B8%AB%E0%B8%99%E0%B9%89%E0%B8%B2&ข้อความต่อท้าย
  • ในส่วนของ ชื่อหน้า จะถูกเข้ารหัสยูอาร์แอลโดยอัตโนมัติ
  • ในส่วนของ ข้อความต่อท้าย ไม่จำเป็นต้องใส่
การเข้ารหัสยูอาร์แอล
เข้ารหัสยูอาร์แอล 1(เข้ารหัสแบบทั่วไป) {{urlencode:ข้อ ความ}}  %E0%B8%82%E0%B9%89%E0%B8%AD+%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1 ช่องวรรค จะถูกเปลี่ยนเป็น "+"
เข้ารหัสยูอาร์แอล 2(เข้ารหัสแบบตัวบอกตำแหน่งในเพจ) {{anchorencode:ข้อ ความ}} .E0.B8.82.E0.B9.89.E0.B8.AD_.E0.B8.84.E0.B8.A7.E0.B8.B2.E0.B8.A1 ช่องวรรค จะถูกเปลี่ยนเป็น "_"

การสุ่ม

คำอธิบาย คำสั่ง ผลที่แสดง หมายเหตุ
สุ่มตัวเลข[8] {{#rand:1|8}}ในที่นี้เป็นการสุ่มเลข 1 ถึง 8 8
การสุ่มข้อความ/โค้ด <choose> <option>ค่า1</option> <option>ค่า2</option> <option>ค่า3</option> ... ... </choose>
  • แท็ก <option> จะมีค่าที่ต้องการสุ่มอยู่ในแท็ก แท็กนี้สามารถเพิ่มได้ในจำนวนไม่จำกัด แต่ทั้งหมดต้องอยู่ในแท้ก <choose> เท่านั้น
  • ในแท็ก <option> ไม่สามารถมีแท็ก <choose> อยู่ภายในได้ ไม่เช่นนั้นจะเกิดการแสดงผลผิดพลาดขึ้น
ค่า1

การตรวจสอบโดยเงื่อนไข[9]

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

ตรวจสอบว่ามีค่าส่งออกมาหรือไม่

{{#if:ค่า|ส่วนที่ 1|ส่วนที่ 2}}

สำหรับส่วนที่ 1 นั้น ค่าในส่วนที่ 1 จะแสดงออกมาจากฟังก์ชั่นเมื่อ "ค่า" มีค่าอยู่จริง สำหรับส่วนที่ 2 ค่าในส่วนนี้จะแสดงออกมาเมื่อ "ค่า" เป็นค่าว่างหรือไม่มีค่า ในส่วนนี้จะใส่หรือไม่ใส่ก็ได้ ถ้าไม่ใส่ เมื่อฟังก์ชั่นแสดงส่วนนี้ออกมาจะมีแต่ความว่างเปล่า

ดูตัวอย่างต่อไปนี้

{{#if:กขคง|ลัทธิเรดอเลิร์ท|ท่านศาสดาหมูแฮม}} ฟังก์ชั่นจะแสดงออกมา คือ ลัทธิเรดอเลิร์ท

สาเหตุที่ได้ค่านี้ออกมา คือ ฟังก์ชั่นได้มีค่าที่ผู้ใช้กำหนดเอง(ซึ่งก็คือ "กขคง") ฟังก์ชั่นจึงแสดงค่าในส่วนที่ 2 ออกมาเป็น ลัทธิเรดอเลิร์ท นั่นเอง

ในทางตรงกันข้าม ถ้าใส่ค่าว่างลงไปแทน กขคง

โค้ดคำสั่ง ผลลัพธ์
{{#if:|มีค่าอยู่จริง|ค่าหายไปใหน}}
ค่าหายไปใหน
{{#if:<!--กขคง-->|ต้องมีแน่ๆ|ไม่มีหรอกนะ}}
ไม่มีหรอกนะ

ฟังก์ชั่นนี้ยังสามารถตรวจสอบตัวแปรธรรมดา และตัวแปรอัตโนมัติได้ โดยใช้หลักการเดียวกับข้างต้น ตังนี้

โค้ดคำสั่ง ผลลัพธ์
{{#if:{{NAMESPACE}}|ส่วนที่ 1|ส่วนที่ 2}}
ส่วนที่ 1
1
{{#if:{{{1|}}|ส่วนที่ 1|ส่วนที่ 2}}
ส่วนที่ 2
1
{{#if:{{{1}}}|ส่วนที่ 1|ส่วนที่ 2}}
ส่วนที่ 1

1 แสดงให้เห็นถึงการตรวจสอบค่าตัวแปร จะเห็นว่าข้อสุดท้ายฟังก์ชั่นจะแสดงค่าในส่วนที่ 1 ออกมา เนื่องจากฟังก์ชั่นจะเห็นว่ามีค่าของตัวแปรออกมา
การตรวจสอบค่าตัวแปรจะต้องใส่เครื่องหมายไปป์ ( | ) ตามหลังด้วยทุกครั้ง เช่น {{{xyz|}}} มิฉะนั้นฟังก์ชั่นจะเข้าใจว่ามีการส่งค่าออกมาจากตัวแปร

การตรวจสอบว่ามีหน้านั้นๆ อยู่หรือไม่

เป็นการตรวจสอบว่ามีหน้าที่ต้องการอยู่จริงหรือไม่ ซึ่งมีวิธีการเขียนโค้ดดังนี้

{{#Ifexist:''ชื่อหน้า''|''ข้อความที่แสดงถ้ามีหน้าอยู่จริง''|''ข้อความที่แสดงถ้าไม่มีหน้า''}}

ซึ่งคำสั่ง {{#Ifexist}} เป็นคำสั่งที่ใช้สำหรับตรวจสอบว่ามีหน้าอยู่จริงหรือไม่

ตัวอย่างที่1

{{#Ifexist:ข้อมูลปกปิด|มีหน้า [[ข้อมูลปกปิด]] อยู่จริง|ไม่มีหน้า [[ข้อมูลปกปิด]]}}

ถ้ามีหน้าข้อมูลปกปิด อยู่จริง จะแสดง มีหน้า ข้อมูลปกปิด อยู่จริง
แต่ถ้าไม่มีหน้าข้อมูลปกปิด อยู่ จะแสดง ไม่มีหน้า ข้อมูลปกปิด

ซึ่งผลลัพธ์ที่ได้คือ Cita3.pngมีหน้า ข้อมูลปกปิด อยู่จริงCita4.png

ตัวอย่างที่ 2

{{#Ifexist:ขิดมูลปกป้อ|มีหน้า [[ขิดมูลปกป้อ]] อยู่จริง|ไม่มีหน้า [[ขิดมูลปกป้อ]]}}

ถ้ามีหน้าขิดมูลปกป้อ อยู่จริง จะแสดง มีหน้า ขิดมูลปกป้อ อยู่จริง
แต่ถ้าไม่มีหน้าขิดมูลปกป้อ อยู่ จะแสดง ไม่มีหน้า ขิดมูลปกป้อ

ซึ่งผลลัพธ์ที่ได้คือ Cita3.pngไม่มีหน้า ขิดมูลปกป้อCita4.png

การเลือกค่า

การเลือกค่า คือ การแสดงค่าหนึ่งๆ เมื่อในตัวแปรมีอีกค่าหนึ่ง
ถ้ายังไม่เข้าใจ ลองดูโค้ดนี้ ซึ่งโค้ดนี้เป็นโค้ดในแม่แบบ switch

{{#switch:{{{word}}}
|พระเจ้า = บร๊ะเจ้า
|นักการเมือง = นักการเมีย
|รัฐธรรมนูญ = รัฐธรรมนู้บ
|เอเชียกลาง = เอเชยกลวง
|#default = ไม่พบคำทับศัพท์นี้
}}

ซึ่งโค้ดแต่ละตัวมีความหมายดังนี้

  • คำสั่ง {{#switch}} เป็นคำสั่งหลักที่ใช้สำหรับการเลือกค่า
  • {{{word}}} (ตัวแปร word) เป็นตัวแปรที่ใช้ในการเลือกค่า
  • พระเจ้า นักการเมือง รัฐธรรมนูญ และ เอเชียกลาง เป็นค่าๆ หนึ่ง ถ้าตัวแปร var ส่งค่าใดค่าหนึ่งออกมา คำสั่ง {{#switch}} จะส่งค่าที่อยู่ถัดจากเครื่องหมายเท่ากับ (=) ของแต่ละค่า ออกไปแทน
  • #default เป็นคำสั่งๆ หนึ่ง ซึ่งจะทำงานเมื่อ ถ้าตัวแปรไม่ได้ส่งค่าใดค่าหนึ่งใน 4 ค่าข้างต้นออกมา คำสั่ง {{#switch}} จะส่งค่าที่อยู่ถัดจากเครื่องหมายเท่ากับ (=) ที่อยู่หลัง #default ออกไปแทน

จากความหมายของโค้ดดังนี้ กล่าวได้ว่า คำสั่ง {{#switch}} เป็นคำสั่งสำหรับเลือกค่านั่นเอง ซึ่งการทำงานของมันคือ เมื่อในตัวแปรที่อยู่ในคำสั่ง {{#switch}} มีค่าๆ หนึ่ง คำสั่ง {{#switch}} จะส่งค่าอีกค่าหนึ่งออกมาแทน ซึ่งสามารถดูตัวอย่างได้ดังต่อไปนี้

ตัวอย่าง (ใช้แม่แบบสมมุติ switch เป็นดารารับเชิญ)

ในแม่แบบดังกล่าวมีโค้ดดังนี้

{{#switch:{{{word}}}
|พระเจ้า = บร๊ะเจ้า
|นักการเมือง = นักการเมีย
|รัฐธรรมนูญ = รัฐธรรมนู้บ
|เอเชียกลาง = เอเชยกลวง
|#default = ไม่พบคำทับศัพท์นี้
}}

ควรดูโค้ดด้านบนประกอบด้วย จึงจะเข้าใจตัวอย่าง

การกระทำ
โค้ด
ผลลัพธ์
ส่งค่า "พระเจ้า" ให้ตัวแปร word {{switch|word=พระเจ้า}} บร๊ะเจ้า
ส่งค่า "นักการเมือง" ให้ตัวแปร word {{switch|word=นักการเมือง}} นักการเมีย
ส่งค่า "รัฐธรรมนูญ" ให้ตัวแปร word {{switch|word=รัฐธรรมนูญ}} รัฐธรรมนู้บ
ส่งค่า "เอเชียกลาง" ให้ตัวแปร word {{switch|word=เอเชียกลาง}} เอเชยกลวง
ส่งค่า "มนุษย์" ให้ตัวแปร word {{switch|word=มนุษย์}} ไม่พบคำทับศัพท์นี้
ไม่ส่งค่าอะไรเลย ให้ตัวแปร word {{switch|word=}} ไม่พบคำทับศัพท์นี้

จะเห็นว่า ถ้าส่งค่า "พระเจ้า" "นักการเมือง" "รัฐธรรมนูญ" "เอเชียกลาง" ค่าใดค่าหนึ่ง ให้ตัวแปร var แม่แบบจะส่งค่าที่อยู่ถัดจากเครื่องหมายเท่ากับ (=) ออกมา แต่ถ้าส่งค่าอื่นๆ ที่นอกเหนือจากนี้ หรือไม่ส่งค่าอะไรเลย แม่แบบจะส่งค่าที่อยู่ถัดจากเครื่องหมายเท่ากับ (=) ของคำสั่ง #default ออกมาแทน

การตรวจสอบความเท่ากัน

คุณสามารถตรวจสอบความเท่ากันของค่า 2 ชุดโดยใช้คำสั่ง {{#Ifeq}} ซึ่งมีการเขียนโค้ดดังนี้

{{#Ifeq:<ค่าชุดที่ 1>|<ค่าชุดที่ 2>|<ข้อความที่แสดงเมื่อค่าชุดที่ 1 และค่าชุดที่ 2 มีค่าเท่ากัน>|<ข้อความที่แสดงเมื่อค่าชุดที่ 1 และค่าชุดที่ 2 มีค่าไม่เท่ากัน>}}

หมายเหตุ ค่าที่จะนำมาเปรียบเทียบไม่จำเป็นต้องเป็นค่าตัวเลขเสมอไป จะเป็นค่าอะไรก็ได้

ซึ่งเราจะใช้แม่แบบ equal เป็นตัวอย่าง ในแม่แบบดังกล่าวมีโค้ดดังนี้

{{#Ifeq:{{{vara}}}|{{{varb}}}|ตัวแปร '''vara''' มีค่าเท่ากับตัวแปร '''varb''' โดยมีค่าเท่ากับ
*vara = {{{vara}}}
*varb = {{{varb}}}
|ตัวแปร '''vara''' มีค่าไม่เท่ากับตัวแปร '''varb''' โดยมีค่าดังนี้
*vara = {{{vara}}}
*varb = {{{varb}}}
}}

หลักการของมันคือ ในแม่แบบจะมีตัวแปรอยู่ 2 ตัวคือ vara และ varb โดยค่าชุดที่ 1 เป็นค่าที่ส่งออกมาจากตัวแปร vara และค่าชุดที่ 2 เป็นค่าที่ส่งออกมาจากตัวแปร varb เมื่อตัวแปรทั้งสองมีค่าเท่ากัน แม่แบบจะส่งข้อความออกมาว่าตัวแปรทั้งสองว่ามีค่าเท่ากัน และจะแสดงค่าในตัวแปรทั้งสองตัวดังกล่าว แต่ถ้าตัวแปรทั้งสองมีค่าไม่เท่ากัน แม่แบบจะส่งข้อความออกมาว่าตัวแปรทั้งสองว่ามีค่าไม่เท่ากัน และจะแสดงค่าในตัวแปรทั้งสองเช่นเดียวกัน

ตัวอย่างที่ 1

{{equal
|vara = rev
|varb = ver
}}

คำอธิบาย เป็นการเรียกแม่แบบขึ้นมาทำงาน แล้วส่งค่าให้ตัวแปร vara เป็น rev และส่งค่าให้ตัวแปร varb เป็น ver

ได้ผลลัพธ์ดังนี้


ตัวแปร vara มีค่าไม่เท่ากับตัวแปร varb โดยมีค่าดังนี้

  • vara = rev
  • varb = ver

ตัวอย่างที่ 2

{{equal
|vara = xex
|varb = xex
}}

คำอธิบาย เป็นการเรียกแม่แบบขึ้นมาทำงาน แล้วส่งค่าให้ตัวแปร vara เป็น xex และส่งค่าให้ตัวแปร varb เป็น xex

ได้ผลลัพธ์ดังนี้


ตัวแปร vara มีค่าเท่ากับตัวแปร varb โดยมีค่าเท่ากับ

  • vara = xex
  • varb = xex

การคำนวณทางคณิตศาสตร์และเปรียบเทียบ[10]

คำสั่ง {{#expr}} เป็นคำสั่งที่ใช้ในการคำนวณ หรือเปรียบเทียบ

การคำนวณ

คำนวณโดยใช้คำสั่ง {{#expr}} ตามที่กล่าวไปข้างต้น โดยมีวิธีการเขียนโค้ดดังนี้

{{#expr: <ตัวตั้ง> <วิธีการคำนวณ> <ตัวคำนวณ>}}
  • ตัวตั้ง คือ ค่าตัวเลข(ห้ามเป็นตัวอักษร) ที่เป็นตัวตั้ง
  • วิธีการคำนวณ คือ สัญลักษณ์พิเศษที่บ่งบอกถึงวิธีการคำนวณ เช่น บวก ลบ คูณ หาร
  • ตัวคำนวณ คือ ค่าตัวเลข(ห้ามเป็นตัวอักษร) ที่นำมาคำนวณกับตัวตั้ง ตามวิธีการคำนวณ

สัญลักษณ์พิเศษต่างๆ

สัญลักษณ์ ความหมาย
+ บวก
- ลบ
* คูณ
/ หรือ div หาร
mod หารเอาเศษ
^ ยกกำลัง

ตัวอย่าง

โค้ด ผลลัพธ์ที่ได้ ความหมาย
{{#expr: 30 + 60}} 90 30 + 60 = 90
{{#expr: 49 + 49}} 98 49 + 49 = 98
{{#expr: 15 - 3}} 12 15 - 3 = 12
{{#expr: 45 - 45}} 0 45 - 45 = 0
{{#expr: 5 * 5}} 25 5 x 5 = 25
{{#expr: 100 * 50}} 5000 100 x 50 = 5000
{{#expr: 90 / 2}} 45 90 ÷ 2 = 12
{{#expr: 8 / 3}} 2.6666666666667 8 ÷ 3 = 2 เศษ 1

ตัวดำเนินการพิเศษสำหรับการแสดงผล

นอกจากนี้แล้ว ฟังก์ชั่น {{#expr}} ยังสามารถกำหนดลักษณะของจำนวนเลขก่อนที่จะแสดงผลได้อีกโดยใช้ตัวดำเนินการพิเศษ ดังต่อไปนี้

สิ่งที่จะทำ การใช้งาน
กำหนดจำนวนตำแหน่งทศนิยมที่แสดงผลออกมา {{#expr: จำนวนเลข หรือนิพจน์ round จำนวนตำแหน่งทศนิยม }}
ตัวอย่างเช่น
  • {{#expr: 10.7777777 round 4 }} = 10.7778
    (จะมีการปัดทศนิยมด้วย)
  • {{#expr: 22 / 7 round 4 }} = 3.1429
  • {{#expr: (22 / 7 round 4) + 10 }} = 13.1429
    (สามารถจัดกลุ่มในวงเล็บได้)
  • {{#expr: (22 / 7) + 10 round 4 }} = 13.1429
ตัดเลขทศนิยมออกทั้งหมด {{#expr: trunc จำนวน }}
และ {{#expr: trunc (นิพจน์) }}
ตัวอย่างเช่น
  • {{#expr: trunc 12.3456789 }} = 12
  • {{#expr: trunc (22 / 7) }} = 3
  • {{#expr: trunc 22 / 7 }} = 3.1428571428571
    (จะเห็นว่าตัวดำเนินการ "trunc" จะดำเนินการกับ "22" เพียงตัวเดียว)
แสดงค่าพาย {{#expr: PI }} = 3.1415926535898

และสามารถนำไปคำนวนได้ตามปกติ เช่น

  • {{#expr: PI + 10 }} = 13.14159265359
  • {{#expr: PI * 5 * 5 }} = 78.539816339745
  • {{#expr: PI round 4 }} = 3.1416
  • {{#expr: trunc PI }} = 3
แสดงค่าสัมบูรณ์ {{#expr: abs จำนวนตัวเลข }}
ตัวอย่างเช่น
  • {{#expr: abs -21 }} = 21
  • {{#expr: abs (1 - 3) }} = 2

ตัวดำเนินการเหล่านี้สามารถจัดกลุ่มให้อยู่ในวงเล็บเช่นเดียวกับตัวดำเนินการทั่วไป

การเปรียบเทียบ

การเปรียบเทียบจะใช้คำสั่ง {{#expr}} เช่นเดียวกับการคำนวณ มีลักษณะการเขียนโค้ดที่คล้ายกับการคำนวณ ดังนี้

{{#expr: <ชุดค่าที่ 1> <วิธีการเปรียบเทียบ> <ชุดค่าที่ 2>}}
  • ชุดค่าที่ 1 ชุดค่าที่จะนำมาเปรียบเทียบ
  • วิธีการเปรียบเทียบ สัญลักษณ์พิเศษที่บ่งบอกถึงวิธีการเปรียบเทียบ เช่น มากกว่า น้อยกว่า
  • ชุดค่าที่ 2 ชุดค่าที่จะนำมาเปรียบเทียบ

สัญลักษณ์พิเศษ

สัญลักษณ์ ความหมาย
> มากกว่า
< น้อยกว่า
= เท่ากับ
!= หรือ <> ไม่เท่ากับ
>= มากกว่าหรือเท่ากับ
<= น้อยกว่าหรือเท่ากับ

ค่าที่ส่งออกมาจากคำสั่ง

คำสั่ง {{#expr}} เมื่อเปรียบเทียบจะส่งค่าออกมาว่าเป็นจริงหรือ เป็นเท็จ ดังนี้

  • 0 = ค่าเท็จ(False)
  • 1 = ค่าจริง(True)

เช่น เรานำ 3 และ 5 ไปเปรียบเทียบว่า 3 < 5 จะได้ค่าเป็น 1 เนื่องจาก 3 น้อยกว่า 5 จริง นั่นเอง

ตัวอย่าง

คำสั่ง ผลลัพธ์ ความหมาย
{{#expr: 27 < 29}} 1 27 น้อยกว่า 29 เป็นค่าจริง
{{#expr: 56 < 38}} 0 56 น้อยกว่า 38 เป็นค่าเท็จ
{{#expr: 46 > 15}} 1 46 มากกว่า 15 เป็นค่าจริง
{{#expr: 32 > 108}} 0 32 มากกว่า 108 เป็นค่าเท็จ
{{#expr: 5056 = 5056}} 1 5056 เท่ากับ 5056 เป็นค่าจริง
{{#expr: 10903 = 400}} 0 10903 เท่ากับ 400 เป็นค่าเท็จ

นอกจากนี้ คุณยังสามารถใช้คำสั่ง {{#ifexpr}} ในการเปรียบเทียบทางคณิตศาสตร์ โดยมีวิธีการใช้แบบเดียวกัน แต่คำสั่งนี้สามารถแสดงข้อความออกมาได้เลย เช่นเดียวกับคำสั่ง {{#if:}} ที่ได้กล่าวไว้แล้วตอนต้น

{{#ifexpr:<ค่า 1> <การเปรียบเทียบ> <ค่า 2>|<แสดงเมื่อเป็นจริง>|<แสดงเมื่อเป็นเท็จ>}}

การตรวจสอบความผิดพลาดของฟังก์ชั่น[11]

ในการเขียนโค้ดนั้น อาจจะเกิดความผิดพลาดโดยไม่คาดฝันอันเนื่องมาจากการเขียนโค้ดผิดพลาด จนทำให้ตัวฟังก์ชั่นฟ้องออกมา และอาจจะมีผลกระทบต่อหน้านั้นด้วย เราสามารถตรวจสอบควบคุมความผิดพลาดโดยใช้ฟังก์ชั่น {{#iferror:}} ได้ การใช้ฟังก์ชั่นนี้จะควบคุมไม่ให้ฟังก์ชั่นฟ้องออกมาจนทำให้มีผลกระทบต่อตัวหน้า

อย่างไรก็ตามฟังก์ชั่นนี้ก็ยังมีข้อจำกัด ฟังก์ชั่นดังกล่าวสามารถตรวจสอบความผิดพลาดของสิ่งต่างๆ ได้ดังนี้

  • ความผิดพลาดของฟังก์ชั่นต่อไปนี้ : {{#expr:}} {{#time:}} และ {{#rel2abs:}}

ฟังก์ชั่นดังกล่าวมีการใช้งานดังนี้

{{#iferror: โค้ดที่ต้องการตรวจสอบความผิดพลาด | [ข้อความที่จะแสดงเมื่อเกิดความผิดพลาดขึ้น] | [ข้อความที่จะแสดงเมื่อไม่เกิดความผิดพลาด] }}

อย่างเช่นความผิดพลาดในการคำนวนของฟังก์ชั่น {{#expr:}} ดังนี้

  • {{#expr: 2 / 0}} = สูตรไม่ถูกต้อง : หารด้วยศูนย์

จะเห็นว่าฟังก์ชั่นนี้จะแสดงข้อความผิดพลาดขึ้นมา(การหารด้วยศูนย์) ดังนั้นถ้าจับใส่ {{#iferror:}} ก็จะแสดงผลดังต่อไปนี้

  • {{#iferror: {{#expr: 2 / 0}} | abc | xyz }} = abc

แต่ถ้าฟังก์ชั่นนี้ไม่เกิดความผิดพลาด ก็จะแสดง "xyz" แทน

นอกจากนี้ ฟังก์ชั่นนี้ยังมีรายละเอียดการระบุค่าปลีกย่อยต่างๆ ดังต่อไปนี้

  • {{#iferror: {{#expr: 1 + 2 }} | error | correct }} → correct
  • {{#iferror: {{#expr: 1 + X }} | error | correct }} → error
  • {{#iferror: {{#expr: 1 + 2 }} | error }} → 3
  • {{#iferror: {{#expr: 1 + X }} | error }} → error
  • {{#iferror: {{#expr: 1 + 2 }} }} → 3
  • {{#iferror: {{#expr: 1 + X }} }}

การสร้างการแสดงรายการหน้า[12]

ในการแสดงผลรายการหน้าหรือบทความในเว็บ คุณสามารถใช้แท็ก <forum> ในการแสดงผลได้ ซึ่งมาการใช้งานดังนี้(สามารถดูตัวอย่างรายการได้ที่ แม่แบบ:สภาน้ำชาลิสต์)

<forum>
พารามิเตอร์1 = ค่า1
พารามิเตอร์2 = ค่า2
</forum>

ต่อไปนี้จะกล่าวถึงพารามิเตอร์ที่จำเป็นในการใช้ฟังก์ชั่นนี้

พารามิเตอร์เกี่ยวกับข้อมูลเนื้อหา

  • category={ชื่อหมวดหมู่} แสดงรายชื่อหน้าต่างๆ ที่มีในหมวดหมู่ที่ระบุไว้ในพารามิเตอร์นี้

หมวดหมู่ที่ระบุในพารามิเตอร์นี้ไม่ต้องใส่ "หมวดหมู่:" นำหน้า

<forum>
category = นักร้อง
</forum>
  • notcategory={ชื่อหมวดหมู่} เอาหน้าที่มีในหมวดหมู่ที่ระบุในพารามิเตอร์นี้ออกไปจากรายการ

พารามิเตอร์นี้ต้องใช้คู่กับ "category" เสมอ

category=นิยามคำศัพท์
notcategory=สิ่งที่ชาววิเกรียนฯไม่มีวันทำได้

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

ไม่ต้องใส่ "หมวดหมู่:" นำหน้า

อ้างอิง

  1. Help:Magic_words#Miscellaneous - Mediawiki
  2. Help:Magic_words#Behaviour_switches - Mediawiki
  3. กูเกิลไม่ได้ใช้แท็ก meta keywords ในการจัดอันดับค้นหา โดย Blognone
  4. Help:Magic words - Mediawiki
  5. Help:ParserFunctions - Meta
  6. Help:Magic_words#Statistics - Mediawiki
  7. Help:Extension:ParserFunctions#.23titleparts:
  8. Extension:DynamicFunctions - Mediawiki
  9. Help:ParserFunctions - Meta
  10. Help:ParserFunctions - Meta#.23expr
  11. Help:Extension:ParserFunctions#iferror: - Mediawiki
  12. Extension:DPLforum