链接和缩略图的快捷代码

时间:2013-04-12 作者:britaingreen

<?php


// Add Shortcode
function blog_shortcode( $atts ) {

// Attributes
extract( shortcode_atts(
    array(
        \'id\' => \'\',
    ), $atts )
);

// Code
if (has_post_thumbnail()) {
    $url = wp_get_attachment_url( get_post_thumbnail_id( $id ) );
}
if ( isset( $id ) ) {
    return \'<img src="\' . $url . \'"/><a href="\' . get_permalink( $id ) . \'">\' . get_the_title( $id ) . \'</a>\';
}

}
add_shortcode( \'blog\', \'blog_shortcode\' );


?>
我正在尝试创建一个基本上可以键入[blog id=“xxxxxx”]的快捷码,然后我会得到一个链接和缩略图。现在我正在获取链接,但缩略图不起作用。我认为我不完全理解如何将缩略图ID变成<;img>标记。任何帮助都将不胜感激。

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

您正在将附件URL分配给$url 变量:

$url = wp_get_attachment_url( get_post_thumbnail_id( $id ) );
然后将相同的变量传递回wp_get_attachment_url:

return \'<img src="\' . wp_get_attachment_url( $url ) . \'"/><a href="\' . get_permalink( $id ) . \'">\' . get_the_title( $id ) . \'</a>\';
您只需将其输出即可:

return \'<img src="\' .$url . \'"/><a href="\' . get_permalink( $id ) . \'">\' . get_the_title( $id ) . \'</a>\';
编辑:

您缺少has\\u post\\u缩略图中的帖子ID。以下操作应该有效。

<?php
// Add Shortcode
function blog_shortcode( $atts ) {

// Attributes
    extract( shortcode_atts(
                    array(
                \'id\' => \'\',
                    ), $atts )
    );

// Code
    $image = \'\';
    if ( isset( $id ) ) {
        if ( has_post_thumbnail( $id ) ) {
            $url = wp_get_attachment_url( get_post_thumbnail_id( $id ) );
            $image = \'<img src="\' . $url . \'"/>\';
        }
        return $image . \'<a href="\' . get_permalink( $id ) . \'">\' . get_the_title( $id ) . \'</a>\';
    }
}

add_shortcode( \'blog\', \'blog_shortcode\' );
?>

结束

相关推荐

Get page IDs from nav items

我正在尝试获取导航中的所有ID,并将其转换为字符串,以便使用wp_query 获取仅在导航中列出的页面。获取ID的代码:$menu_name = \'primary\'; if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_name ] )) { $menu = wp_get_nav_menu_object( $locations[ $menu_name ]