ผู้ชำนาญเกี่ยวกับ Functions ของ WORDPRESS ช่วยผมหน่อยครับ

เริ่มโดย Nopzixcros, 07 มีนาคม 2011, 12:21:34

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

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

Nopzixcros

คือว่าผมจะทำ Options ของธีม wordpress อะครับ

โดยจะทำเป็น Dropdown ให้เลือก Category ว่าอยากให้ แสดง Category ไหน

ผมดูโค้ด ที่มีอยู่ในไฟล์ Functions.php ที่ติดมากับธีม

มันเป็นส่วนของ featured ที่เป็นสไลด์อะครับ สามารถเลือกได้ว่าจะแสดงโพสของ category ใด

โค้ดในไฟล์ functions.php มันจะประมาณนี้อะครับ

ส่วนของ ฟังค์ชั่น

function cats_to_select()
{
$categories = get_categories('hide_empty=0');
$categories_array[] = array('value'=>'0', 'title'=>'Select');
foreach ($categories as $cat) {
if($cat->category_count == '0') {
$posts_title = 'No posts!';
} elseif($cat->category_count == '1') {
$posts_title = '1 post';
} else {
$posts_title = $cat->category_count . ' บทความ';
}
$categories_array[] = array('value'=> $cat->cat_ID, 'title'=> $cat->cat_name . ' ( ' . $posts_title . ' )');
 }
return $categories_array;
}


ส่วนของ อาร์เรย์


array( "name" => "Featured Posts Category",
"desc" => "Last 5 posts form the selected categoey will be listed as featured at homepage. <br />",
"id" => $shortname."_featured_posts_category",
"options" => cats_to_select(),
"std" => "0",
"type" => "select"),


แล้วเวลาเรียกใช้ค่าของตัวนี้ ในไฟล์ featured.php จะเป็นโค้ดประมาณนี้อะครับ

<?php
$featured_posts_category get_theme_option('featured_posts_category');

if($featured_posts_category != '' && $featured_posts_category != '0') {
global $post;

 $featured_posts get_posts("numberposts=5&&category=$featured_posts_category");


ซึ่งผมจะทำฟังค์ชั่นแบบ ส่วนด้านบน

แต่เป็นโค้ด แบบนี้อะครับ

<? $postcount = 0;
               $featured_query = new WP_Query('cat=7&showposts=12&orderby=desc');


ส่วนของ cat=7 คือไอดีของ Category นั้น

ถ้าผมจะทำฟังค์ชั่นโดยให้เลือก Category ที่จะนำมาแสดงในส่วน theme options

ผมจะต้องเขียนอย่างไรครับ

ถ้ายังงงตรงไหน ถามได้เลยนะครับ  :wanwan012:

Nopzixcros


benitora

ใช้ Plugin  ก็ได้ครับ Dropdown เลือกตาม Category ใช่ไหมครับ ผมเคยใช้ multiple category selection widget ครับ  :wanwan017: :wanwan017: :wanwan017:

Nopzixcros

อ้างถึงจาก: benitora ใน 07 มีนาคม 2011, 13:42:47
ใช้ Plugin  ก็ได้ครับ Dropdown เลือกตาม Category ใช่ไหมครับ ผมเคยใช้ multiple category selection widget ครับ  :wanwan017: :wanwan017: :wanwan017:

ไม่ใช่ครับ ผมจะทำฟังค์ชั่นหลังบ้านอะครับ

Nopzixcros


poydookdik

หมายถึงทำเป็น Dropdown ไว้สำหรับเลือก Categories ในหน้า theme options ใช่หรือเปล่าครับ
สั่งสมประสบการณ์ เก็บความรู้ไปเรื่อยๆ ทำเว็บไปวันๆ

Nopzixcros

อ้างถึงจาก: poydookdik ใน 07 มีนาคม 2011, 16:04:01
หมายถึงทำเป็น Dropdown ไว้สำหรับเลือก Categories ในหน้า theme options ใช่หรือเปล่าครับ

ใช่ครับ แล้วค่าที่เลือกก็มาเป็นตัวแปรแสดงผลในโค้ดนี้อะครับ

<? $postcount = 0;
                $featured_query = new WP_Query('cat=ตัวแปร&showposts=12&orderby=desc');

poydookdik

ผมใช้แบบนี้ครับ

<div class="postbox">
       <h3>Tabs News</h3>
       <div class="inside">
         <p>
           Category for Tabs News #1 :
           <br/>
           <?php wp_dropdown_categories(array('selected' => get_theme_mod('tabsnews1'), 'name' => $settings.'[tabsnews1]', 'orderby' => 'Name' , 'hierarchical' => 1, 'hide_empty' => '0' )); ?>
         </p>
       </div>
     </div>

เอาไว้ในส่วนของ <form method="post" action="options.php"> ของไฟล์ theme-options.php
สีแดงคือตั้งเป็นชื่อตัวแปรที่จะเอาไปใช้ครับ ส่วนเวลาจะเรียกเอาไปใช้ก็

<?php $recent = new WP_Query("cat=".get_theme_mod('tabsnews1')."&showposts=1"); while($recent->have_posts()) : $recent->the_post();?>

ลองประยุกต์ดูครับ
สั่งสมประสบการณ์ เก็บความรู้ไปเรื่อยๆ ทำเว็บไปวันๆ

Nopzixcros

อ้างถึงจาก: poydookdik ใน 07 มีนาคม 2011, 16:54:24
ผมใช้แบบนี้ครับ

<div class="postbox">
        <h3>Tabs News</h3>
        <div class="inside">
          <p>
            Category for Tabs News #1 :
            <br/>
            <?php wp_dropdown_categories(array('selected' => get_theme_mod('tabsnews1'), 'name' => $settings.'[tabsnews1]', 'orderby' => 'Name' , 'hierarchical' => 1, 'hide_empty' => '0' )); ?>
          </p>
        </div>
      </div>

เอาไว้ในส่วนของ <form method="post" action="options.php"> ของไฟล์ theme-options.php
สีแดงคือตั้งเป็นชื่อตัวแปรที่จะเอาไปใช้ครับ ส่วนเวลาจะเรียกเอาไปใช้ก็

<?php $recent = new WP_Query("cat=".get_theme_mod('tabsnews1')."&showposts=1"); while($recent->have_posts()) : $recent->the_post();?>

ลองประยุกต์ดูครับ

ขอไปลองก่อนนะครับ แล้วจะมาบอกผลอีกที

Nopzixcros

อ้างถึงจาก: Nopzixcros ใน 07 มีนาคม 2011, 17:02:00
อ้างถึงจาก: poydookdik ใน 07 มีนาคม 2011, 16:54:24
ผมใช้แบบนี้ครับ

<div class="postbox">
        <h3>Tabs News</h3>
        <div class="inside">
          <p>
            Category for Tabs News #1 :
            <br/>
            <?php wp_dropdown_categories(array('selected' => get_theme_mod('tabsnews1'), 'name' => $settings.'[tabsnews1]', 'orderby' => 'Name' , 'hierarchical' => 1, 'hide_empty' => '0' )); ?>
          </p>
        </div>
      </div>

เอาไว้ในส่วนของ <form method="post" action="options.php"> ของไฟล์ theme-options.php
สีแดงคือตั้งเป็นชื่อตัวแปรที่จะเอาไปใช้ครับ ส่วนเวลาจะเรียกเอาไปใช้ก็

<?php $recent = new WP_Query("cat=".get_theme_mod('tabsnews1')."&showposts=1"); while($recent->have_posts()) : $recent->the_post();?>

ลองประยุกต์ดูครับ

ขอไปลองก่อนนะครับ แล้วจะมาบอกผลอีกที

ลองเอาไปประยุกต์เหมือนกับว่ามันไม่ดึงส่วนที่เลือกออกมาแสดงอะครับ   :'(

poydookdik

สั่งสมประสบการณ์ เก็บความรู้ไปเรื่อยๆ ทำเว็บไปวันๆ

Nopzixcros


poydookdik

สั่งสมประสบการณ์ เก็บความรู้ไปเรื่อยๆ ทำเว็บไปวันๆ