web-dev-qa-db-fra.com

Obtenir l'identifiant WordPress Post à partir du titre

J'ai un problème avec un thème WordPress personnalisé que je développe. C'est un peu compliqué, mais je dois essentiellement obtenir un identifiant de publication par son titre. En pseudo-code, ce serait idéalement quelque chose comme:

title = "foo";
post_id = get_post_id_where_title_is(title);

Le titre mentionné est une référence statique non extraite de WordPress, elle est déjà présente sur la page.

Merci d'avance.

45
Aaron

Juste un petit mot pour tous ceux qui tombent sur ça:
get_page_by_title () peut désormais gérer n’importe quel type de publication.
Le paramètre $post_type a été ajouté dans WP 3.0.

85
Michal Mau

Nous avons trouvé une solution si quelqu'un d'autre se débattait avec cela. Seulement posté la question en désespoir de cause après 4 heures de test/googler!

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;
}

Trouvé à: http://sudarmuthu.com/blog/2009/09/18/retrieving-posts-and-pages-based-on-title-in-wordpress.html

19
Aaron

Comme l'a mentionné Michal Mau:

Utilisation

$my_post = get_page_by_title( 'My Title', OBJECT, 'post' );
echo $my_post->post_content;

C'est ( $page_title, $output, $post_type ) pour recevoir facilement un message au lieu d'une page.

7
BrainBUG

Puisse cela vous aider davantage en créant une fonction qui évite de répéter le code

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);
2
Kundan SIngh

vous pouvez utiliser le code suivant selon [un lien] [http://codex.wordpress.org/Function_Reference/get_page_by_title] 1 )!

<?php 
$page = get_page_by_title( 'About' );
wp_list_pages( 'exclude=' . $page->ID );
?>
1
Ramkumar

il est facile d'obtenir l'identifiant de post du titre du post en utilisant la requête wp:

global $wpdb;

$rw = $wpdb->get_row( $wpdb->prepare("select * from "your post table name" where post_title='your variable name or your post title'"));

echo $rw->ID;
0
Omdev

1) différez post_title et post_name les uns des autres. post_name est peut-être la limace. post_title est le titre de post.

2) 

$titlee = "yourtitle";
echo $id = $wpdb->get_var("SELECT ID FROM $GLOBALS['wpdb']->posts WHERE post_name = $titlee");
0
T.Todua

Une autre façon d’obtenir le post et l’identifiant de la page est d’utiliser un plugin.

il y a un plugin qui ajoute simplement une colonne à toutes vos pages, toutes les publications, toutes les tables de catégories et un titre de colonne d'ID ... identifiant inscrit dans cette colonne ..

Je pense que cela devrait être très utile ..

J'utilise ce plugin très fréquemment et il est très léger.

http://getyourblogready.com/?p=758

0
user1470261

Pas besoin d'utiliser n'importe quel type de requête SQL ou plugin, utilisez les fonctions standard de Wordpress pour cela

$page = get_page_by_title( 'Home' );
$page_id = $page->ID;
0
Erik Larsson