检索静态博客帖子页面上的特色图片

时间:2016-01-21 作者:NickD

因此,我将我的网站设置为在首页和帖子页面使用静态页面。现在我正在创建我的帖子页面模板。我想从我为posts页面制作的实际页面中获取一些内容(尽管它不再被真正视为一个页面),然后我想出了如何做到这一点。。。差不多吧。

$posts_page = get_option( \'page_for_posts\' );
$title   = get_post( $posts_page )->post_title;
echo $title;
因此,这将在标题区域显示“页面”的标题,而不是帖子的标题。我现在需要并且弄不清楚的是,如何使用此方法获取具有特色的图像URL,并使用自定义缩略图大小。

有什么想法吗?

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

在您的示例中,$posts_page 包含帖子页面的ID,您可以将其与任何接受帖子ID的API函数一起使用。

对于特色图像:

$posts_page = get_option( \'page_for_posts\' );
$post_thumbnail_id = get_post_thumbnail_id( $posts_page );
$url = wp_get_attachment_image_src( $post_thumbnail_id, \'your-custom-size\' );
echo $url;
并输出应用过滤器的帖子标题:

$posts_page = get_option( \'page_for_posts\' );
$title = get_post_field( \'post_title\', $posts_page );
if ( ! is_wp_error( $title ) ) {
    echo $title;
}

SO网友:Pieter Goosen

您可以使用查询的对象。在博客页面上,查询的对象将保留设置为博客页面的页面的页面对象。

以下内容可以使用(如果您只需要在博客页面上显示此内容,就可以使用此功能)

/**
 * Use $post as local variable in order use setup_postdata 
 * in order to make the use of template tags available
 */
if ( is_post_page() ) { // Only target the blog page
    $post = get_queried_object();
    setup_postdata( $post ); 
        // Display the post thumbnail
        the_title();

        // Display the post thumbnail
        if ( has_post_thumbnail() ) {
            // featured image URL
            $size = \'my_custom_size\';
            $thumbnail_id =  get_post_meta( get_the_ID(), \'_thumbnail_id\', true );
            $image_src = wp_get_attachment_image_src( $thumbnail_id, $size );
            //var_dump( $image_src ); // For debugging purposes
            $url = $image_scr[0]; 

            Display post thumbnail
            the_post_thumbnail( $size );
        }
    wp_reset_postdata(); // Restore the $post global
}

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register