Как я могу получить пост по заголовку в Wordpress? - PullRequest
12 голосов
/ 28 августа 2010

Wordpress 3.0

Я хочу разместить содержимое определенного поста на странице, используя title поста. Насколько я могу судить, я не могу сделать это напрямую с get_post().

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

Ответы [ 6 ]

34 голосов
/ 20 сентября 2012
get_page_by_title($id, OBJECT, 'post');

Вот, пожалуйста.

5 голосов
/ 28 августа 2010
<!--1.Get post ID by post title if you know the title or the title variable-->
<?php
$posttitle = 'post_title';
$postid = $wpdb->get_var( "SELECT ID FROM $wpdb->posts WHERE post_title = '" . $posttitle . "'" );
echo $postid;
?>

<!--2.use get_post($post_id) to get whatever you want to echo-->
<?php
$getpost= get_post($postid);
$postcontent= $getpost->post_content;
echo $postcontent;
?>
4 голосов
/ 12 октября 2012

Нет необходимости в запросах SQL, когда вы можете использовать для этого собственные функции WordPress.

$page = get_page_by_title( 'Startsida' );
$page_id = $page->ID;
2 голосов
/ 10 февраля 2017

post_exists - хорошая функция для этого:

https://developer.wordpress.org/reference/functions/post_exists/

<?php

$post_id = post_exists('Your title');
// return id or 0 if post doesn't exists.

if($post_id>0)
    get_post($post_id);
1 голос
/ 08 апреля 2013

Вы можете использовать это:

1)

global $wpdb;
$your_title = "yourtitle";
$id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_name = $your_title");
echo $id;

или 2)

    $slug_to_get = 'my_title_or_slug';
    // you can use custom post type too
    $posttypee='post';

    $args=array(
      'title' => $slug_to_get,
      'post_type' => $posttypee,
      'post_status' => 'publish'
      );
    $my_posts = get_posts($args);
    if( $my_posts ) {
    echo 'ID on the first post found '.$my_posts[0]->ID;
    }
1 голос
/ 29 августа 2010

См. мой ответ на очень похожий вопрос. не запрашивать базу данных с неэкранированной строкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...