ThaiSEOBoard.com

พัฒนาเว็บไซต์ => CMS & Free Script => ข้อความที่เริ่มโดย: T l2 0 J A N ที่ 15 เมษายน 2010, 20:27:51



หัวข้อ: ผมจะดึง Custom Fields มาแสดงทำยังไงครับ
เริ่มหัวข้อโดย: T l2 0 J A N ที่ 15 เมษายน 2010, 20:27:51
ปรกติผมสามารถทำให้มันแสดงได้โดยนำ code ด้านล่างนี้ไปใส่ไว้ใน single.php ของธีมที่ใช้

โค๊ด:
<?php echo get_post_meta($post->ID, &#39;code1&#39;, $single = true); ?>


แต่ทีนี้ผมสร้างสสร้าง page ขึ้นมาใหม่สมมุติชื่อว่า test.php เอาไว้ folder นอกสุดแล้วเอา code ตามด้านบนไปใส่

และให้มันแสดงใน single.php โดยใช้ iframe ตาม code ด้านล่าง

โค๊ด:
<iframe marginwidth="0" marginheight="0" frameborder="0" width="530" scrolling="yes" height="450" target="_blank" src="test.php" allowtransparency="true"></iframe>


ปรากฏว่าขึ้น Fatal error ตาม code ด้านล่าง

(http://img412.imageshack.us/img412/2237/codeti.jpg)


ไม่ทราบว่าผมต้องทำยังไงที่จะดึง Custom Fields มาแสดงได้ โดยสร้าง page ขึ้นมาเองครับ

ผมไม่มีความรู้เรื่องการทำเว็บเท่าไร ช่วยชี้แนะด้วยครับ


หัวข้อ: Re: ผมจะดึง Custom Fields มาแสดงทำยังไงครับ
เริ่มหัวข้อโดย: belief1976 ที่ 15 เมษายน 2010, 20:38:42
ให้ include ไฟล์ที่มีฟังชั่น get_post_meta(); ในไฟล์ test.php ด้วยครับ


หัวข้อ: Re: ผมจะดึง Custom Fields มาแสดงทำยังไงครับ
เริ่มหัวข้อโดย: T l2 0 J A N ที่ 15 เมษายน 2010, 21:05:50
ให้ include ไฟล์ที่มีฟังชั่น get_post_meta(); ในไฟล์ test.php ด้วยครับ

ผมลอง include ไฟล์ functions.php มัน error ไฟล์ที่ include อ่าครับ


หัวข้อ: Re: ผมจะดึง Custom Fields มาแสดงทำยังไงครับ
เริ่มหัวข้อโดย: belief1976 ที่ 15 เมษายน 2010, 21:23:28
ลอง run เฉพาะไฟล์ test.php ดูก่อนครับ
ตาม error ที่เห็นเป็นเพราะไหล์ test.php ไม่เจอ function ครับ

ถ้ายังไม่ได้จริงส่งมาให้แก้ให้ก็ได้ครับ


หัวข้อ: Re: ผมจะดึง Custom Fields มาแสดงทำยังไงครับ
เริ่มหัวข้อโดย: AuGusTin ที่ 15 เมษายน 2010, 21:34:29
ลองใส่บรรทัดนี้ บนสุดของโค้ดน่ะครับ

โค๊ด:
require( '../my_wordpress_install_root/wp-load.php' );

อย่าลืมเปลี่ยนชื่อโฟลเดอร์ของ wordpress น่ะครับ  :wanwan013:


หัวข้อ: Re: ผมจะดึง Custom Fields มาแสดงทำยังไงครับ
เริ่มหัวข้อโดย: T l2 0 J A N ที่ 15 เมษายน 2010, 21:44:00
ลอง run เฉพาะไฟล์ test.php ดูก่อนครับ
ตาม error ที่เห็นเป็นเพราะไหล์ test.php ไม่เจอ function ครับ

ถ้ายังไม่ได้จริงส่งมาให้แก้ให้ก็ได้ครับ



คือ Custom Fields ที่ผมสร้างตัวอย่างตามรูป ในแต่ล่ะ Post ผมจะสร้างขึ้นมาเป็น code1,code2,code3,code4,code5,code6 มากน้อยก็แล้วแต่กำหนด และในช่อง Value ก็จะแตกต่างกัน

(http://img153.imageshack.us/img153/853/415201092852pm.jpg)

ผมสร้างสร้างไฟล์ขึ้นมาใหม่สมมุติชื่อว่า test1.php,test2.php,test3.php,test4.php,test5.php,test6.php

test1.php ก็จะแสดง Value ของ code1, test2.php ก็จะแสดง Value ของ code2, test3.php ก็จะแสดง Value ของ code3

แบบนี้อ่ะครับ

และผมจะเอาหน้าพวกนี้ test1-6.php ให้มันแสดงใน single.php โดยใช้ iframe

จะเขียน code ยังไงดีครับ  :wanwan020:



หัวข้อ: Re: ผมจะดึง Custom Fields มาแสดงทำยังไงครับ
เริ่มหัวข้อโดย: T l2 0 J A N ที่ 15 เมษายน 2010, 22:00:39
ลองใส่บรรทัดนี้ บนสุดของโค้ดน่ะครับ

โค๊ด:
require( '../my_wordpress_install_root/wp-load.php' );

อย่าลืมเปลี่ยนชื่อโฟลเดอร์ของ wordpress น่ะครับ  :wanwan013:


มันไม่มีอะไรขึ้นมาเลยอ่าครับ ไม่มี error และก็ไม่มีข้อความจาก Custom Fields ที่สร้างไว้  :o


หัวข้อ: Re: ผมจะดึง Custom Fields มาแสดงทำยังไงครับ
เริ่มหัวข้อโดย: g-ji ที่ 15 เมษายน 2010, 22:21:26
test.php อยู่ใน root (ที่เดียวกับ wp-config.php) เหรอ

ย้ายมันไปไว้ในธีมสิ

แล้วแก้ iframe

โค๊ด:
<iframe marginwidth="0" marginheight="0" frameborder="0" width="530" scrolling="yes" height="450" target="_blank" src="<?php bloginfo('template_directory'); ?>/test.php" allowtransparency="true"></iframe>

แบบนี้น่าจะได้นะ



หัวข้อ: Re: ผมจะดึง Custom Fields มาแสดงทำยังไงครับ
เริ่มหัวข้อโดย: T l2 0 J A N ที่ 15 เมษายน 2010, 23:00:11
test.php อยู่ใน root (ที่เดียวกับ wp-config.php) เหรอ

ย้ายมันไปไว้ในธีมสิ

แล้วแก้ iframe

โค๊ด:
<iframe marginwidth="0" marginheight="0" frameborder="0" width="530" scrolling="yes" height="450" target="_blank" src="<?php bloginfo('template_directory'); ?>/test.php" allowtransparency="true"></iframe>

แบบนี้น่าจะได้นะ




ลองทำแล้วมันก็ error เหมือนโพสแรกอ่าครับ






หัวข้อ: Re: ผมจะดึง Custom Fields มาแสดงทำยังไงครับ
เริ่มหัวข้อโดย: sleepcat ที่ 15 เมษายน 2010, 23:23:53
ลองใช้

โค๊ด:

<iframe marginwidth="0" marginheight="0" frameborder="0" width="530" scrolling="yes" height="450" target="_blank" src="test.php?code1=<?php echo get_post_meta($post->ID'code1'$single true); ?>" allowtransparency="true"></iframe>


ดูนะครับ
โดยไฟล์ test.php มีตัว $_GET['code1'] ไปทำงานต่อ

ปล. ผมไม่ได้ลองนะครับ แค่คิดแนวทางนี้น่าจะได้ :P


หัวข้อ: Re: ผมจะดึง Custom Fields มาแสดงทำยังไงครับ
เริ่มหัวข้อโดย: g-ji ที่ 16 เมษายน 2010, 00:11:12
ok ได้ล่ะ

 :P

ลองทำตั้งนาน

เอาโค้ดนี้ไปใส่ใน test.php

โค๊ด:
<?php include_once($_SERVER['DOCUMENT_ROOT'].'/test/wp-load.php'); ?>

<?php query_posts('post_meta='.array('code1','code2','code3','code4')); ?>
<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
<?php echo get_post_meta($post->ID'code1'true); ?>
<?php echo get_post_meta($post->ID'code2'true); ?>
<?php echo get_post_meta($post->ID'code3'true); ?>
<?php echo get_post_meta($post->ID'code4'true); ?>
<?php endwhile;endif;?>

ตอนแรกใช้

โค๊ด:
<?php if(have_posts()) : while(have_posts()) : the_post(); ?>

อย่างเดียวแล้วมันไม่แสดงผลอะไรเลย เลยลอง query_posts ด้วย post_meta ดู มันก็แสดงผลล่ะ

เห็นว่าจะเอาไปทำหลายๆ ไฟล์ก็แก้

โค๊ด:
<?php query_posts('post_meta='.array('code1','code2','code3','code4')); ?>

เป็น

โค๊ด:
<?php query_posts('post_meta=code1')); ?>

แล้วตั้งชื่อไฟล์เป็น test1.php (ตามตัวอย่าง)

อืม... เดี๋ยวชอบทำไฟล์กันแปลกๆ แฮะ


หัวข้อ: Re: ผมจะดึง Custom Fields มาแสดงทำยังไงครับ
เริ่มหัวข้อโดย: T l2 0 J A N ที่ 16 เมษายน 2010, 00:18:19
ขอบคุณทุกๆท่านมากครับ ตอนนี้ทำได้แล้วครับ  :wanwan017:

ขอบคุณท่าน sleepcat  และ g-ji  ด้วยครับ ใช้ได้ทั้งสองวิธีเลยครับ

 :wanwan017: :wanwan017: :wanwan017: :wanwan017:


หัวข้อ: Re: ผมจะดึง Custom Fields มาแสดงทำยังไงครับ
เริ่มหัวข้อโดย: T l2 0 J A N ที่ 16 เมษายน 2010, 10:32:01
ok ได้ล่ะ

 :P

ลองทำตั้งนาน

เอาโค้ดนี้ไปใส่ใน test.php

โค๊ด:
<?php include_once($_SERVER['DOCUMENT_ROOT'].'/test/wp-load.php'); ?>

<?php query_posts('post_meta='.array('code1','code2','code3','code4')); ?>
<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
<?php echo get_post_meta($post->ID'code1'true); ?>
<?php echo get_post_meta($post->ID'code2'true); ?>
<?php echo get_post_meta($post->ID'code3'true); ?>
<?php echo get_post_meta($post->ID'code4'true); ?>
<?php endwhile;endif;?>

ตอนแรกใช้

โค๊ด:
<?php if(have_posts()) : while(have_posts()) : the_post(); ?>

อย่างเดียวแล้วมันไม่แสดงผลอะไรเลย เลยลอง query_posts ด้วย post_meta ดู มันก็แสดงผลล่ะ

เห็นว่าจะเอาไปทำหลายๆ ไฟล์ก็แก้

โค๊ด:
<?php query_posts('post_meta='.array('code1','code2','code3','code4')); ?>

เป็น

โค๊ด:
<?php query_posts('post_meta=code1')); ?>

แล้วตั้งชื่อไฟล์เป็น test1.php (ตามตัวอย่าง)

อืม... เดี๋ยวชอบทำไฟล์กันแปลกๆ แฮะ


ผมลอง Post หลายๆ Post แล้วมันดึงข้อมูล Custom Fields ของทุก Post มาแสดงหมดเลยอ่าครับ


ทำยังไงให้มันดึง Custom Fields มาแสดงแค่โพสนั้น ไม่ใช่ดึงของโพสอื่นๆมาด้วยอ่าครับ

ขอบคุณครับ  :wanwan017:


หัวข้อ: Re: ผมจะดึง Custom Fields มาแสดงทำยังไงครับ
เริ่มหัวข้อโดย: AuGusTin ที่ 16 เมษายน 2010, 11:52:13
ลองโค้ดนี้ดูน่ะครับ จะเป็นการดึงเฉพาะโพสต์นั้นๆออกมาแสดง

โค๊ด:
<?php query_posts('p' => 123 ,'post_meta=code1'); ?>

เลข "123" เป็นเลข Post Id น่ะครับ ก็ลองเปลี่ยนตามเลข Post ID ตามที่ต้องการ
 :wanwan013:


หัวข้อ: Re: ผมจะดึง Custom Fields มาแสดงทำยังไงครับ
เริ่มหัวข้อโดย: T l2 0 J A N ที่ 16 เมษายน 2010, 12:34:15
ลองโค้ดนี้ดูน่ะครับ จะเป็นการดึงเฉพาะโพสต์นั้นๆออกมาแสดง

โค๊ด:
<?php query_posts('p' => 123 ,'post_meta=code1'); ?>

เลข "123" เป็นเลข Post Id น่ะครับ ก็ลองเปลี่ยนตามเลข Post ID ตามที่ต้องการ
 :wanwan013:

อยากจะได้ code ดึงมาแบบอัตโนมิติเลยครับ



ตอนนี้กำลังใช้วิธีของคุณ sleepcat ยังไม่เจอปัญหาครับ  :wanwan017: