วานเทพ Programmer (Wordpress) แนะนำที...

เริ่มโดย thaiz, 16 มิถุนายน 2010, 00:12:33

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

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

thaiz

พอดีมีข้อสงสัยอยู่เรื่องหนึ่งครับเกี่ยวกับ Wordpress นี่แหละครับ

เรื่องมีอยู่ว่า ผมได้สร้าง Custom field มาตัวหนึ่ง
สมมุติเลยหละกัน

ผมสร้าง Custom Field ชื่อว่า "language"

Field "language" จะมี Value 2 ตัวคือ Thai / English เป็น Text

เวลาผมเรียกใช้งานที่ Template จะใช้คำสั่งนี้

อันนี้เป็นฟังก์ชั่น
function get_custom_field_value($szKey, $bPrint = false) {
global $post;
$szValue = get_post_meta($post->ID, $szKey, true);
if ( $bPrint == false ) return $szValue; else echo $szValue;
}


อันนี้แทรกในธีม
<?php if ( function_exists('get_custom_field_value') ){
  
get_custom_field_value('language'true);
?>


เวลาแสดงผลก็จะแสดงปกติ คือได้ข้อความที่เป็น Text Value  "Thai" หรือ "English"  อันนี้ผ่านครับ ไม่มีปัญหา

แต่ประเด็นผมอยู่ที่ ผมอยากให้มันแปลงจาก "Thai" หรือ "English"
ที่เป็น Text นี้  เป็น Image รูปธงชาติ ไทย หรือ อังกฤษ ครับ
เพราะ Text มันดูธรรมดาไป ใครช่วยได้ แนะนำผมทีครับ

ขอบคุณล่วงหน้าครับผม

:wanwan017: :wanwan011:

9neo

<?php if ( function_exists('get_custom_field_value') ){
  get_custom_field_value('language', true);
$dd = get_custom_field_value('language', true);
  $flag = ($dd === 'thai') ? '<img src="รูปธงชาติไทย" />' : '<img src="รูปธงชาติอังกฤษ" />';

} ?>

เสร็จแล้ว echo $flag ตามจุดที่ต้องการ แบบนี้ได้มั้ยครับ

เขียนมะกี้นะครับ ไม่ได้จับ wordprress มาซักพักละ  :P

playinw

#2
ไม่เคยใช้ WordPress อ่ะ แต่เดาจาก syntax ที่เห็นนะครับ

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

ถ้าใช่ อ่านต่อ

ใช้โค้ดนี้ครับ


<?php if ( function_exists('get_custom_field_value') ){
$val get_custom_field_value('language'true);
 if(isset(
$val)) {
echo 
"<img src=".$val.".gif alt=\"\"/>";
}
?>



หรือจะเอาโค้ดที่สสั้นที่สุดเลยก็ได้แบบนี้

<?php if ( function_exists('get_custom_field_value') ){
echo 
"<img src=".get_custom_field_value('language'true).".gif alt=\"\"/>";
?>



แล้วก็เตรียม ไฟล์ English.gif กับ Thai.gif วางลงไป (ไฟล์ภาพธงชาตินั่นเอง)
น่าจะได้มั้ง ผมไม่เคยใช้ WordPress หรอกแต่เดาเอาด้วยประสบการ์ณ php

อ้อ แท็ก img ใส่ alt ด้วย มันจะได้ validate w3c ผ่าน

thaiz

อ้างถึงจาก: 9neo ใน 16 มิถุนายน 2010, 00:20:17
<?php if ( function_exists('get_custom_field_value') ){
  get_custom_field_value('language', true);
$dd = get_custom_field_value('language', true);
  $flag = ($dd === 'thai') ? '<img src="รูปธงชาติไทย" />' : '<img src="รูปธงชาติอังกฤษ" />';

} ?>

เสร็จแล้ว echo $flag ตามจุดที่ต้องการ แบบนี้ได้มั้ยครับ

เขียนมะกี้นะครับ ไม่ได้จับ wordprress มาซักพักละ  :P

ขอบคุณครับ อันนี้ ยังไม่ได้ครับ มันขึ้นข้อความซ้อนกันเลย เช่น "EnglishEnglish"

ขอบคุณครับ +1 เด่วลองของท่าน playinw ต่ออีกอีกครั้งครับ

thaiz

#4
อ้างถึงจาก: playinw ใน 16 มิถุนายน 2010, 00:28:01
ไม่เคยใช้ WordPress อ่ะ แต่เดาจาก syntax ที่เห็นนะครับ

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

ถ้าใช่ อ่านต่อ

ใช้โค้ดนี้ครับ


<?php if ( function_exists('get_custom_field_value') ){
$val get_custom_field_value('language'true);
 if(isset(
$val)) {
echo 
"<img src=".$val.".gif alt=\"\"/>";
}
?>



หรือจะเอาโค้ดที่สสั้นที่สุดเลยก็ได้แบบนี้

<?php if ( function_exists('get_custom_field_value') ){
echo 
"<img src=".get_custom_field_value('language'true).".gif alt=\"\"/>";
?>



แล้วก็เตรียม ไฟล์ English.gif กับ Thai.gif วางลงไป (ไฟล์ภาพธงชาตินั่นเอง)
น่าจะได้มั้ง ผมไม่เคยใช้ WordPress หรอกแต่เดาเอาด้วยประสบการ์ณ php

อ้อ แท็ก img ใส่ alt ด้วย มันจะได้ validate w3c ผ่าน

โอ้วเกือบแล้วครับท่าน ผม View Source จาก บราวเซอร์ดูมันออกมายังงี้ครับ
English<img src=.gif alt=""/>

:P
ถ้าได้ผลออกมาแบบนี้เป้นอันเรียบร้อยแน่ ๆ ครับ
<img src=English.gif alt=""/>

แต่ทำยังไงอ่ะครับ

:-X


ปล ผมใช้วิธีของท่านอันนี้นะครับ

<?php if ( function_exists('get_custom_field_value') ){
echo 
"<img src=".get_custom_field_value('language'true).".gif alt=\"\"/>";
?>


playinw

#5
พอดีมัน return ค่ามาเป็น echo ผมนึกว่า return มาเป็นตัวแปร

thaiz

อ้างถึงจาก: playinw ใน 16 มิถุนายน 2010, 00:49:38
get_custom_field_value('language', true);

เวลาคุณเรียกใช้อันนี้มันแสดงว่า English - Thai เลยหรือเปล่า หรือว่าต้อง
echo get_custom_field_value('language', true); อีกที

โอ้วว ไม่เป็นไรครับ ผมใช้วิธี ถึก ๆ ไปเรียบร้อยครับ ได้ผลด้วยแฮะ

ขอบคุณทุกท่านครับ +1 ทุกท่าน

วิธีผม ถึกโคตะระ
<img src="<?php if ( function_exists('get_custom_field_value') ){
   
get_custom_field_value('language'true);
 } 
?>
.gif" />


:-[   :wanwan004:

9neo

อ่อ จำได้ละ get_custom_field_value('language', true); ฟังชั่นนี้มันจะออกมาในรูป echo ตัวแปรมาเลย :-X