Wordpress短代码无效

时间:2013-03-30 21:26:01

标签: php wordpress shortcode

我为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');
?>

我认为问题出在标签或其他东西上,但这是我的第一个短代码,问候

1 个答案:

答案 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');
?>