我为wordpress创建了这个短代码但没有作品
<?php
function theme_tfw_posts()
{
?>
<?php
global $post;
$args = array( 'numberposts' => 5, 'offset'=> 1, 'category' => 1 );
$myposts = get_posts( $args );
foreach( $myposts as $post ) :
setup_postdata($post);
?>
$a=<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>;
<?php endforeach; ?>
<?php
return $a;
}
?>
<?php
add_shortcode('tfw_posts','theme_tfw_posts');
?>
我认为问题出在标签或其他东西上,但这是我的第一个短代码,问候
答案 0 :(得分:0)
至少有一件看似错误的事情是$a
在您退回时不会被定义。原因是您的行$a=<a href...
不在PHP代码块中。
每次$a
循环执行时,foreach
都会被覆盖。也许你想将每个链接附加到前一个链接?
这可能会更好(虽然我不完全确定你要做什么,所以可能不会):
<?php
function theme_tfw_posts()
{
$args = array( 'numberposts' => 5, 'offset'=> 1, 'category' => 1 );
$myposts = get_posts( $args );
$a = '';
foreach( $myposts as $post )
{
setup_postdata($post);
$a .= '<a href="' . the_permalink() . '">' . the_title() . '</a>';
}
return $a;
}
add_shortcode('tfw_posts','theme_tfw_posts');
?>