2013-02-20 2 views
1

Я увидел здесь, что могу получить содержание сообщения в WordPress, используя идентификатор сообщения. Что-то вроде:Wordpress, получить содержание сообщения по его названию или URL-адресу

<?php $my_postid = 83;//This is page id or post id 
$content_post = get_post($my_postid); 
$content = $content_post->post_content; 
$content = apply_filters('the_content', $content); 
$content = str_replace(']]>', ']]&gt;', $content); 
echo $content;?> 

Я хочу то же самое, НО получаю сообщение от его имени.

ответ

2

Вы можете сделать это с помощью

$content_post = get_posts(array('name' => 'yourpostname')); // i.e. hello-world 
if(count($content_post)) 
{ 
    $content = $content_post[0]->post_content; 
    // do whatever you want 
    echo $content; 
} 

Update: Также вы можете добавить эту функцию в functions.php и могут позвонить из любой

function get_post_by_name($post_name, $post_type = 'post', $output = OBJECT) { 
    global $wpdb; 
    $post = $wpdb->get_var($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type= %s", $post_name, $post_type)); 
    if ($post) return get_post($post, $output); 
    return null; 
} 

// call the function "get_post_by_name" 
$content_post = get_post_by_name('hello-world'); 
if($content_post) 
{ 
    $content = $content_post->post_content; 
    // do whatever you want 
    echo $content; 
} 

Update: Чтобы получить пост by название вы можете использовать

// 'Hello World!' is post title here 
$content_post = get_page_by_title('Hello World!', OBJECT, 'post'); 

или вы можете использовать $item->item_title переменной

$content_post = get_page_by_title($item->item_title, OBJECT, 'post'); 
if($content_post) 
{ 
    $content = $content_post->post_content; 
    // do whatever you want 
    echo $content; 
} 
+0

это работает, если я ставлю имя пост вручную. Но что, если я хочу, чтобы он был динамическим item_title); ?>. Я имею в виду, я не знаю, php, я спрашиваю вас, что помещать внутри 'yourpostname', если я хочу поместить itemtitle как postname ... –

+0

'post-name' - это сообщение' slug' здесь, и это не название, но если вы хотите использовать заголовок вместо этого, вы можете использовать [get_page_by_title] (http://codex.wordpress.org/Function_Reference/get_page_by_title). –

+1

большое спасибо! Отлично работает, вы спасли меня :) –