以短码显示POST_META

时间:2012-03-07 作者:frankV

简单的短代码转换过于复杂

<?php
function recent_posts() {

$q = new WP_Query( 
  array( \'orderby\' => \'date\', \'posts_per_page\' => \'1\') 
);

$list = \'<ul>\';

while($q->have_posts()) : $q->the_post();
//$location = bloginfo(\'template_directory\');
$imgsrc = get_post_meta($q->ID, \'blog-left-image\', true);

$list .= \'<li><a href="\' . get_permalink() . \'">\' . get_the_title();
$list .= \'<img src="\' . $location . \'/image.php/resized.jpg?width=80&amp;height=80&amp;image=\' . $imgsrc . \'" alt="" class="related-posts-img" style="float:left; margin-right:5px;" />\';
$list .= \'</a></li>\';

endwhile;

wp_reset_query();

return $list . \'</ul>\';

add_shortcode("recent_posts", "recent_posts");?>
我觉得这很简单。要创建一个短代码以显示帖子缩略图。Problem is, get\\u post\\u元(…)不输出任何内容,并且bloginfo(\'template\\u directory\')未正确连接。

2 个回复
最合适的回答,由SO网友:Jon 整理而成

看起来您有两个问题:

首先是使用$q->ID。这不是从循环中获取当前帖子ID的正确方法。您想使用get\\u the\\u ID()。

第二个问题是应该使用get\\u bloginfo()而不是bloginfo()。Bloginfo echo直接返回数据,而get\\u Bloginfo()返回数据(允许您分配给$location变量)。

最后一个建议是:get\\u bloginfo(\'template\\u directory\')不会在循环的每个迭代中更改值。您可以将该行移出循环以节省一些资源。

SO网友:helgatheviking

maybe?

function recent_posts() {

$args = array ( \'orderby\' => \'date\', \'posts_per_page\' => \'1\');

$recent_posts = get_posts($args);

if($recent_posts) :
$list = \'<ul>\';

//store the $post variable
global $post; $temp = $post;
foreach ($postslist as $post) :  setup_postdata($post); 

$imgsrc = get_post_meta(get_the_ID(), \'blog-left-image\', true);

$list .= \'<li><a href="\' . get_permalink() . \'">\' . get_the_title();
$list .= \'<img src="\' . get_template_directory_uri() . \'/image.php/resized.jpg?width=80&amp;height=80&amp;image=\' . $imgsrc . \'" alt="" class="related-posts-img" style="float:left; margin-right:5px;" />\';
$list .= \'</a></li>\';

endwhile;

$list .= \'</ul>\';
//reset the $post variable
$post = $temp;
endif;

return $list;

add_shortcode("recent_posts", "recent_posts");
结束

相关推荐

Shortcodes not working

我有WordPress 3.2.1 我已经创建了一个个人短代码,在我更改Permalink Settings 从…起Default 到Custom Structure.短代码会永久停止工作,而我会返回到Default 背景你好,我今年[生日=“1975-03-25”]岁。我添加了add_shortcode 在我的主题中的函数functions.php.如果我添加新shortcode 到原始WordPress主题Twenty Eleven 在functions.php 文件,工作正常!我的职能。php文件: