在我的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 );
?>
但它显示了正在观看的当前帖子的固定链接。 请帮帮我们。
答案 0 :(得分: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
}
答案 1 :(得分: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();
,无论您想要什么