gpt4 book ai didi

php - Wordpress get_posts() 不返回所有带有 post_type=attachment 的帖子

转载 作者:行者123 更新时间:2023-12-03 23:07:02 28 4
gpt4 key购买 nike

我正在尝试从 Wordpress 的媒体库中获取所有视频的列表。我从常规 WP 循环之外执行此操作,因此包括 wp-load.php。但是,使用此代码我返回了 0 个帖子(尽管实际上有 4 个视频):

include('../../../wp-load.php');

$args = array(
'post_type' => 'attachment',
'post_mime_type' => 'video',
'numberposts' => -1,
'posts_per_page'=>-1,
'suppress_filters' => true,
'post_status' => 'any',
'post_parent' => null
);
$attachments = get_posts( $args );
echo(count($attachments));
if ( $attachments ) {
foreach ( $attachments as $post ) {
setup_postdata( $post );
the_title();
echo('<br />');
echo wp_get_attachment_url( $post->ID, false );
echo('<br /><br />');
}
wp_reset_postdata();
}

但是,该问题似乎与视频没有直接(或仅)相关:如果我从中删除 'post_mime_type' => 'video' 参数在查询中,我的媒体库中只返回了 16 个附件(图像、声音、视频),而不是 121 个。我真的开始在这个问题上失去理智......

最佳答案

嘿!经过数小时的几乎所有尝试后,我找到了导致此问题的原因:插件 Polylang

长话短说,如果在您的 Wordpress 安装中安装了 Polylang,似乎必须为 get_posts() 函数提供另一个参数:它称为 lang!

它可以是一个空字符串来简单地列出所有 Assets ,或者是 Polylang 在特定 Wordpress 安装中使用的特定语言标签之一。所以最终的工作代码必须是这样的:

include('../../../wp-load.php');

$args = array('lang' => '', 'post_type' => 'attachment', 'post_mime_type' => 'video', 'numberposts' => -1, 'posts_per_page'=>-1, 'suppress_filters' => true, 'post_status' => 'any', 'post_parent' => null);
$attachments = get_posts( $args );
echo(count($attachments));
if ( $attachments ) {
foreach ( $attachments as $post ) {
setup_postdata( $post );
the_title();
echo('<br />');
echo wp_get_attachment_url( $post->ID, false );
echo('<br />');echo('<br />');
}
wp_reset_postdata();
}

我真的希望这可以帮助其他人节省一些宝贵的时间!

此链接有助于找到我的解决方案: http://polylang.wordpress.com/documentation/documentation-for-developers/general/

关于php - Wordpress get_posts() 不返回所有带有 post_type=attachment 的帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20573675/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com