2009-09-07 91 views
4

我知道有功能,喜歡is_single(),將返回有關頁面數據,但是我正在尋找一種方式來獲得環路以外的下列信息:獲取信息後外WordPress的循環

單個帖子的類別。

AND

單個帖子的標題。

我真的需要的是發佈的ID,我可以獲得所有其他信息。我已經瀏覽了代碼中的函數引用,但是我沒有找到任何東西。這是不可能的,因爲直到循環運行,腳本甚至不會獲得該信息?

(我需要在頁眉和頁腳中的這些信息,所以之前併爲循環PHP腳本之後,如果這是一個問題。)

希望有人能提供一些見解。

編輯:澄清:我希望信息來自加載在「單個」頁面循環中的帖子。 (也就是他們正在查看的帖子。)那麼我怎樣才能得到這個ID呢?基本上,在查看帖子時,我想要獲得它的類別或標題,但不能在循環進行時進行。

+0

我看到你在@ Yaraher回覆的評論中留下了一個問題。請參閱下面的答案以獲取解決方案。 – 2009-09-17 04:47:20

回答

3

您可以執行自己的查詢,並返回一個$ post對象,然後訪問它通過一些屬性,如

echo $post->title; 

閱讀WPDB $和Custom Queries的食品。基本上你可以運行一個SQL查詢,通過它的$ wpdb對象使用ID作爲where過濾器。

另一種選擇,更可溼性粉劑狀,將使用Custom Query Post,在那裏你可以定義另一個循環,使用ID只返回你的信息:

query_posts('p=2010'); // 2010 being the post's ID 

然後,你可以運行的替代循環和使用類似的$ post對象來顯示一些信息。

+0

好的,但我看到的問題是...我希望信息來自加載在「單個」頁面循環中的帖子。 (也就是他們正在查看的帖子。)那麼我怎樣才能得到這個ID呢? 基本上,當查看帖子時,我想獲取它的類別或標題,但不是在循環進行時。 – 2009-09-08 03:13:14

2

這是我在循環內部運行一個新的查詢;我只是在循環之外嘗試它,它在single.php模板頁面上工作。這將給出mycategory最新帖子的標題。不過,我不知道如何提取類別ID。

$my_query = new WP_Query('category_name=mycategory&showposts=1'); 
while($my_query->have_posts()): 
    $my_query->the_post(); 
    the_title(); 
endwhile; 
+0

再次,問題是這是一個新的查詢。我需要的是訪問已在is_single頁面上查詢的帖子。但我需要它在該頁面的循環之外。 – 2009-09-10 02:12:46

+0

循環已經運行,所以你需要查詢或搜索完成頁面的代碼?我不知道目標是什麼;我想我會重新思考爲什麼你需要這樣做。 – markratledge 2009-09-10 14:30:07

1

查詢運行後,嘗試運行:

global $wp_query; 
var_dump($wp_query); 

你正在尋找的信息可能是在$wp_query->query_vars$wp_query->post

-2

通常就是要打造「第二循環」,這將提取需要的文章,因此您需要的數據。

5

這其實很簡單。

// Gets an array of post objects. 
// If this is the single post page (single.php template), this should be an 
// array of length 1. 
$posts = get_posts(); 
// The post object contains most/all of the data that is accessible through the 
// normal functions like `the_ID()`, `the_author()`, etc 
var_dump($posts[0]->ID); 

這可以在外部執行,它不會影響正常循環。例如,我的single.php模板看起來像這樣(行號包括):

1. <?php 
2. get_header(); 
3. $posts = get_posts(); 
4. var_dump($posts[0]->ID); 
5. ?> 
6. <div id="post"> 
0

你不能存儲$職位信息頁面上一個獨立的變量,那麼就呼應了數據以後,當你需要出去需要它(即,在循環之外)?

這是基於在初始循環運行後需要數據。

1

您可以使用$ wp_query全局對象,並解決所有返回的帖子這樣

$wp_query->posts ; // contains an array of posts. 

然後,舉例來說如果你需要知道,如果第一個職位是一定post_type的,你可以這樣做:

$first_post_type = $wp_query->posts[0]->post_type;