web-dev-qa-db-fra.com

comment obtenir un permalien en utilisant SQL

J'essaie d'obtenir le titre du post par sql. Mon code SQL est

$query ="SELECT     wp_posts.post_title AS title , 
                    wp_posts.post_content AS content,
                    wp_posts.post_date AS blogdate 
        FROM wp_posts
        WHERE wp_posts.post_status = 'publish'
        ORDER BY wp_posts.post_date DESC ";
global $wpdb;
$result= $wpdb->get_results($query);


 if ($result){

    foreach($result as $post){
    ?><li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>">
    <?php echo $post->title; ?></a></li><?php
    }
 }else{
     echo "Sorry, No Post Found.";
 }

    die();

Maintenant, le problème est que je reçois un titre mais the_permalink () ne fonctionne pas.

2
Kallol Das

Je ne suis pas sûr de savoir pourquoi vous utilisez une requête personnalisée et non pas get_posts() ou WP_Query comme vous le devriez.

Quoi qu'il en soit, vous devez obtenir le code postal…

$query ="SELECT     wp_posts.post_title AS title , 
                    wp_posts.post_content AS content,
                    wp_posts.post_date AS blogdate ,
                    wp_posts.ID AS ID

Et puis passez simplement cet identifiant à get_permalink():

get_permalink( $post->ID );

Similaire pour l'attribut title:

the_title_attribute( [ 'post' => $post->ID ] );
2
fuxia