【问题标题】:How to get the page thumbnail's url with WP_Query?如何使用 WP_Query 获取页面缩略图的 url?
【发布时间】:2017-08-15 19:55:56
【问题描述】:

我正在尝试从某个类别中获取页面缩略图的 url。使用 functions.php 中的 sn-p,我将帖子缩略图添加到页面中。但现在我想要抓取页面缩略图的 url,但这似乎不起作用。我得到的是 blogpost 的帖子缩略图。

我该如何解决这个问题?

我当前的查询:

$argpostthumbs = array(
    'post_type'         => 'page',
    'order'             => 'DESC',
    'orderby'           => 'date',
    'post_per_page'     => 1,
    'cat'               => $category->term_id,
    'meta_query'        => array(
        array(
            'key' => '_thumbnail_id',
            'compare' => 'EXISTS'
        ),
    ),
);
$postthumbs = new WP_Query($argpostthumbs);                                    

if ( $postthumbs->have_posts() ) {
    $imagePath = get_the_post_thumbnail_url( get_the_ID(), 'fp-category-thumbnail' );
}

$imagepath 包含博文的缩略图。我需要页面缩略图。

functions.php中的sn-p:

function add_taxonomies_to_pages() {
    register_taxonomy_for_object_type( 'post_tag', 'page' );
    register_taxonomy_for_object_type( 'category', 'page' );
}
add_action( 'init', 'add_taxonomies_to_pages' );
if ( ! is_admin() ) {
    add_action( 'pre_get_posts', 'category_and_tag_archives' );
}

希望有人可以帮助我解决这个问题。 :)

【问题讨论】:

  • “我得到的是 blogpost 的帖子缩略图” - 那是因为您使用的是帖子的 id ...developer.wordpress.org/reference/functions/get_the_id: “检索WordPress 循环中当前项目的 ID。” 看起来你不在循环中……所以你需要先获取 post 对象,然后从中获取 id。
  • 对不起,我忘了提。上面的代码在循环内的 foreach 内。我正在尝试实现一个类别列表,其中包含帖子或页面的最新发布缩略图的缩略图。帖子正在工作,但页面还没有。
  • 那么你还需要调用 the_post ...
  • 所以你在默认的wordpress页面下有分类,你有几个类别并试图访问缩略图..
  • @sagar 是的,我为页面启用了类别。默认情况下,Wordpress 不支持带有页面的类别。

标签: wordpress thumbnails


【解决方案1】:

你试过了吗:

if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
    the_post_thumbnail_url();
} 

【讨论】:

  • 我刚做了。没有给我想要的结果。上面的代码是 foreach 循环的一部分,根据您的建议,所有 foreach 查询都获得相同的缩略图 url。不过感谢您的努力。
【解决方案2】:

不确定您是要尝试使用类别图片还是单页图片,还是单页上的类别图片? 您是否为页面启用了 theme_support?

add_theme_support( 'post-thumbnails', array( 'page' ) );

还要确保您在正确的模板中,并且在循环中。抱歉,我没有足够的代表来评论这些问题!

【讨论】:

  • 我查过了。我为帖子和页面启用了缩略图。
【解决方案3】:

如果您已正确放置所有代码,请尝试此操作

$img=wp_get_attachment_image_src(get_post_thumbnail_id(get_the_ID()),'full');

【讨论】:

  • 谢谢。我下周回来工作时会试试看。
  • 这不起作用。情况更糟。我得到了一个数组。我以前没有。
  • 那么让我在我的本地主机中看看这个
  • 由于某种原因,它似乎忽略了 wp_query 中的 post_type。当我删除它时得到同样的东西。
猜你喜欢
  • 1970-01-01
  • 2012-09-25
  • 1970-01-01
  • 2018-03-25
  • 2020-05-16
  • 2015-09-05
  • 1970-01-01
  • 1970-01-01
  • 2020-05-05
相关资源
最近更新 更多