問題描述
我正在開發一個自定義 WordPress 主題的問題。這有點複雜,但基本上,我需要做的是透過郵政標題獲得一個帖子標識。在 pseudo-code 中,理想情況是:
title = "foo";
post_id = get_post_id_where_title_is(title);
所提到的標題是一個靜態引用,不是從 WordPress 中提取出來的,它已經存在於頁面上。
提前致謝。
最佳解決方案
任何絆腳石的人都可以快速注意:get_page_by_title()現在可以處理任何帖子型別。 WP 3.0 中新增了 $post_type 引數。
次佳解決方案
找到一個解決方案,如果有任何人努力與此。只有在 4 小時測試/谷歌搜尋之後才發出絕望的問題!
function get_post_by_title($page_title, $output = OBJECT) {
global $wpdb;
$post = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_title = %s AND post_type='post'", $page_title ));
if ( $post )
return get_post($post, $output);
return null;
}
發現於:http://sudarmuthu.com/blog/2009/09/18/retrieving-posts-and-pages-based-on-title-in-wordpress.html
第三種解決方案
像 Michal Mau 所說:
使用
$my_post = get_page_by_title( 'My Title', OBJECT, 'post' );
echo $my_post->post_content;
它是 ( $page_title, $output, $post_type )輕鬆地收到一個帖子而不是一個頁面。
第四種方案
這可能會透過建立函式來幫助您,以便您不必重複程式碼
function get_page_id_by_title($title)
{
$page = get_page_by_title($title);
return $page->ID;
}
$title = "your title";
get_page_id_by_title($title);
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。