1

在我的 Wordpress 博客中,我试图获取自定义帖子类型的帖子的帖子永久链接,为此我将此代码添加到 function.php

function get_randomp() { ?>
<?php 
$args=array('post_type'=>'photo', 'orderby'=>'rand', 'posts_per_page'=>'1'); 
$photo=new WP_Query($args); while ($photo->have_posts()) : $photo->the_post();
?>
<?php echo get_the_ID(); ?>
<?php
endwhile;
wp_reset_postdata();
?>
<?php } ?>

这在 sidebar.php 中添加了此代码以输出永久链接,

<?php 
$postidr = get_randomp();
echo get_permalink( $postidr ); 
?>

但它显示了正在查看的当前帖子的永久链接。请帮帮我。

4

2 回答 2

0

您的函数不应回显结果,而应返回结果。你也有非常畸形的代码,试试这个:

function get_randomp() { 
    $args = array('post_type'=>'photo', 'orderby'=>'rand', 'posts_per_page'=>'1'); 
    $photos = new WP_Query($args); // Posts set to variable

    $photo = current($photos); // Get first, and only, post

    wp_reset_postdata(); // Reset posts

    return $photo->ID; // Return ID from post object
}
于 2013-08-15T15:58:22.403 回答
0

工作代码在这里,把它放到你的主题functions.php中

function get_randomp() { 

$args=array('post_type'=>'photo', 'orderby'=>'rand', 'posts_per_page'=>'1'); 
$photo=new WP_Query($args); while ($photo->have_posts()) : $photo->the_post();


echo '<a href="' . get_permalink( get_the_ID() ) . '">';
echo 'Link';
echo '</a>';

endwhile;
wp_reset_postdata();
 }
 add_action( 'init', 'get_randomp',1);

get_randomp();随心所欲地调用它

于 2013-08-15T16:27:52.633 回答