通过Post Id发布永久链接不起作用

时间:2013-08-15 15:38:19

标签: php wordpress

在我的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 ); 
?>

但它显示了正在观看的当前帖子的固定链接。 请帮帮我们。

2 个答案:

答案 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();,无论您想要什么