我的wordpress主题中有一个功能:
function ajax_get_videoposts () {
$args = array(
'numberposts' => 5,
'orderby' => 'post_date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish',
'suppress_filters' => true
);
//get 5 posts which are published
$recent_posts = wp_get_recent_posts($args);
$append .= '<div id="recommended-videos" class="recommended-videos rec-vid rec-vid2">';
$append .= '<div class="rec-title">Check These Out Next:</div>';
$append .= '<div class="rec-videos">';
foreach ($recent_posts as $recent) {
$thumb_id = get_post_thumbnail_id($recent['ID']);
$url = wp_get_attachment_url($thumb_id);
$append .= '<div class="videos">';
//a hrefs
$append .= '<a href="' . get_permalink($recent["ID"]) . '">';
$append .= '<div class="videoinfo">' . (__($recent["post_title"])) . '</div>' . '</a>';
//img tag
$append .= '<img align="top"' . 'src="' . $url . '"' . 'alt="' . (__($recent["post_title"])) . '">';
//looping 6 times
$append .= '</div>';
}
$append .= '<div class="rec-btns">';
$append .= print_r(get_permalink());
echo $append;
}
add_action( 'wp_ajax_ajax_get_videoposts', 'ajax_get_videoposts' ); // If called from admin panel
add_action( 'wp_ajax_nopriv_ajax_get_videoposts', 'ajax_get_videoposts' ); // If called from front end
然后我调用这个函数我通过AJAX调用这个函数。问题是
$append .= print_r(get_permalink());
打印我的电话号码&#39; 1&#39;而不是post URL,因为它在functions.php而不是例如single.php中使用,我如何获得functions.php中的帖子URL?
答案 0 :(得分:0)
为什么要使用print_r?
不是
$append = get_permalink();
你真正想要的是什么?
以防万一,如果要将print_r存储在变量中,则必须将TRUE作为第二个参数传递。这将给我们:
$append = print_r(get_permalink(),TRUE);
答案 1 :(得分:0)
我不希望get_permalink()
返回任何有用的内容,因为您通过Ajax调用此函数,并且从您的代码可以看出,循环不在玩。通过查看此代码,您希望get_permalink()
指的是哪个页面或帖子,这一点并不清楚;也许分享你这样做的理由将有助于提供更好的答案。
此外,&#39; 1&#39;您看到的输出是因为print_r
的工作方式:
当return参数为TRUE时,此函数将返回一个字符串。否则,返回值为 TRUE 。
您的$append .= print_r(get_permalink());
有效地解析为$append .= TRUE;
(在字符串连接中将转换为字符串表示形式'1'
)。