2014-01-10 3 views
6

Я использую этот код, чтобы показать WordPress сообщения во внешнем веб-сайте:получить WordPress пост по ДОЛЖНОСТЬ

<?php 
require('wp_blog/wp-blog-header.php'); 

    if($_GET["p"] > '') { ?> 

    <?php query_posts('p='.$_GET["p"].''); ?> 
    <?php while (have_posts()) : the_post(); ?> 
     <h4><?php the_title(); ?></h4> 
     <?php the_content(); ?> 
    <?php endwhile; ?> 
    <?php } else { ?> 

    <?php 
    $posts = get_posts('numberposts=10&order=ASC&orderby=post_title'); 
    foreach ($posts as $post) : setup_postdata($post); ?> 
     <?php the_date(); echo "<br />"; ?> 
     <?php the_title(); ?>  
     <?php the_excerpt(); ?> 
    <?php endforeach; ?> 

    <?php } ?> 

вместо выбора пост на основе ID, как я могу сделать это выбрать пост, основанный на название должности?

+1

Возможный дубликат [Как я могу получить сообщение по названию в Wordpress?] (Http://stackoverflow.com/questions/3591295/how-can-i-get-a-post-by-title- in-wordpress) – Reeno

+0

Вам нужна страница для показа Slug? –

ответ

15

Вы можете использовать get_page_by_title() принести столб title.Like этого:

$page = get_page_by_title('About', OBJECT, 'post'); 
echo $page->ID 

Подробности here.

ИЛИ пользовательский запрос, как это:

$posttitle = 'About'; 
$postid = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_title = '" . $posttitle . "'"); 
echo $postid; 
+0

Я пробовал делать: $ page = get_page_by_title ('Hello world!'); \t echo $ page-> ID, но его ничего не возвращает – user2710234

+0

передать второй и третий параметр с помощью 'hello world'. –

+0

какой второй и третий параметр? – user2710234

2

Добавить функцию Как это

function get_page_by_post_name($post_name, $output = OBJECT, $post_type = 'post'){ 
    global $wpdb; 
    $page = $wpdb->get_var($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_title = %s AND post_type= %s", $post_name, $post_type)); 

    if ($page) return get_post($page, $output); 

    return null; 
} 

add_action('init','get_page_by_post_name'); 

И работать так:

$page = get_page_by_post_name('hello-world', OBJECT, 'post'); 
echo $page->ID; 
1

попробовать этот

$post_id = get_page_by_title($post_title, OBJECT, 'your_post_type_name'); 
$post_id->ID; // your id 
Смежные вопросы