WP การสร้างหน้าล็อกอินใหม่

เริ่มโดย g-ji, 11 พฤศจิกายน 2010, 02:22:26

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

g-ji

พอดีไปแชร์ข้อมูลที่ wordpress.in.th ก็เลยเอามาแปะไว้ที่นี่ด้วย ตามระเบียบ

เป็นการตอบหัวข้อ
อยากทำเว็บที่มีระบบสมาชิก
http://board.wordpress.in.th/topic/14

ซึ่งจี้ไปเพิ่มเติมในหัวข้อที่ 3
3. ตัวล็อกอิน ง่ายๆ เท่ๆ

เพิ่มเติมหัวข้อนี้ พอดีเมื่ออาทิตย์ก่อนจี้แงะ โค้ด wp เล่น ก็ไปเจอ ฟังก์ชันนึง ชื่อว่า

wp_login_form (อยู่ใน wp-includes/general-template.php) พึ่งเพิ่มเข้ามาใน WP 3.0.0 (มันน่าจะมีตั้งนานแล้ว -*-)

รายละเอียดคร่าวๆ
http://codex.wordpress.org/Function_Reference/wp_login_form

มันก็คือ ล็อกอินฟอร์ม นี่แหละ แต่มาในรูปแบบฟังก์ชัน กำหนดค่าเพิ่มเติมได้ตามต้องการ

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

แต่เดี๋ยวก่อน เสียเวลามาตอบแค่นี้มันยังไม่ใจพอ ต้องมีแถม

จี้นึกได้ว่า มันทำ short code ได้ (ระบบ short code ของ wp http://codex.wordpress.org/Shortcode_API ตัวอย่างก็ [gallery] นั้นแหละ)

วิธีทำก็ไม่วุ่นวายนัก เปิดไฟล์ functions.php ของธีมที่ใช้ แล้วเพิ่ม

add_shortcode('login','wp_login_form');

เข้าไปก็เสร็จ

เวลาใช้งานก็สร้าง post หรือ page ใหม่ แล้วพิมพ์ข้อความ [login]

มันก็จะออกมาเป็น post หรือ page สำหรับล็อกอิน ตามรูปข้างล่าง↓
http://upic.me/i/67/login_form.jpg

ซึ่งเรากำหนดได้ว่าจะให้มันเด้งไปหน้าไหนในตัวฟังก์ชัน


<?php
$args 
= array(
        
'echo' => true,
        
'redirect' => site_url$_SERVER['REQUEST_URI'] ), /*บรรทัดนี้คือการกำหนดว่าจะให้เด้งไปหน้าไหน*/
        
'form_id' => 'loginform',
        
'label_username' => __'Username' ),
        
'label_password' => __'Password' ),
        
'label_remember' => __'Remember Me' ),
        
'label_log_in' => __'Log In' ),
        
'id_username' => 'user_login',
        
'id_password' => 'user_pass',
        
'id_remember' => 'rememberme',
        
'id_submit' => 'wp-submit',
        
'remember' => true,
        
'value_username' => NULL,
        
'value_remember' => false );
?>



หรือจะเขียนเป็นฟังก์ชันใหม่ และทำเป็น shortcode พร้อมกำหนดหน้าที่เด้งไปหลังล็อกอินก็ทำได้ไม่ยาก

copy โค้ดเดิมทั้งหมด(wp_login_form) มาทำฟังก์ชันใหม่ สมมติว่าชื่อ my_login_form แล้วทิ้งไว้แบบนั้น
จากนั้นสร้างฟังก์ชันชื่อ

<?php
function short_my_login_form($atts,$content=null){
/*สร้าง string จาก array*/
extractshortcode_atts( array(
      
'redirect' => 'redirect',
      ), 
$atts ) );
/*array ของฟังก์ชัน login_form*/
$args = array(
        
'redirect' => site_url$redirect ));
return 
my_login_form($args);
}
add_shortcode('login','short_my_login_form');
?>



เวลาใช้งานก็พิมพ์ ไว้ในเนื้อหา
[login redirect="หน้าที่ต้องการให้เด้งไป"]

นี่เป็นตัวอย่าง ตัวฟอร์มที่ทำการตกแต่งแล้ว (สร้างฟังก์ชันใหม่ เปลี่ยน class เพื่อตกแต่งมัน)
http://upic.me/i/hz/my_form.jpg
หน้าที่ส่งให้มันเด้งไป
[login redirect="/test/"] (localhost ใช้ / ไม่ได้มันจะเด้งไปหน้า 127.0.01)
กดล็อกอิน
http://upic.me/i/yv/my_form_2.jpg
เด้งไปหน้าโฮม (/test/)

***
จบ!
O_o
WP เป็นเรื่องง่ายๆ

ขอให้สนุกกับการใช้งาน WP

xmen256k


bird35793

ได้ความรู้เพิ่มอีกแล้วซิเรา ๆๆๆ :'(
[direct=http://www.thehddrecovery.com]HDD recovery[/direct]

miji

ฝึกทำ้เว็บครับ