我正在从 WordPress 中的 api 获取 YouTube feed,并根据该数据创建帖子,并将其分配为“视频”类别。我仅在该类别页面的类别页面中遇到分页问题,基本上,如果创建更多帖子,它会创建分页链接,但在除第一个页面之外的所有其他页面上都会出现 404 错误。我没有使用自定义帖子类型,而是使用默认的“帖子”类型通过我的代码创建帖子。当我删除所有创建的文件时,该类别的分页工作正常。预先感谢您的帮助。
$data = file_get_contents($url);
if(!empty($data)){
$data = json_decode($data);
foreach ($data->items as $item) {
$title = $item->snippet->title;
$description = $item->snippet->description;
$video = $item->id->videoId;
$thumbnail = $item->snippet->thumbnails->default->url;
$content = '<p style="text-align:center">https://www.youtube.com/watch?v='.$video.'</p>';
// Prepare post data
$post_data = array(
'ID' => 0,
'post_author' => $user->ID,
'post_content' => $content,
'post_content_filtered' => '',
'post_title' => $title,
'post_excerpt' => $description,
'post_status' => 'publish',
'comment_status' => 'closed',
'ping_status' => 'closed',
'post_password' => '',
'post_name' => sanitize_title($title),
'to_ping' => '',
'pinged' => '',
'post_parent' => 0,
'menu_order' => 0,
'post_mime_type' => '',
'guid' => '',
'import_id' => 0,
'post_category' => array( $category_id), // Set the category IDs
'tags_input' => '',
'tax_input' => array( $category_id),
'meta_input' => array(
'primary_category' => 'videos'
),
'page_template' => 'category.php'
);
// Insert the post into the database
$post_id = wp_insert_post($post_data);
}
}
更新永久链接设置 转到 WordPress 管理员中的“设置”>“永久链接”,然后单击“保存更改”。这将更新永久链接设置并刷新重写规则。 更新 .htaccess 文件 如果更新永久链接设置不起作用,您可以尝试手动更新 .htaccess 文件。 更改 $wp_query 使用 pre_get_posts 更改 $wp_query。 检查 posts_per_page 值 一位用户报告将 posts_per_page 值设置为与设置/阅读参数相同的值解决了该问题
我已经完成了以下操作:
函数modify_main_query($query) {
if ( !is_admin() && $query->is_main_query() && ( $query->is_category() || $query->is_post_type_archive() ) ) {
// 调整查询参数
$query->set('post_type', array('post'));
$query->set('posts_per_page', 10); }
}
add_action('pre_get_posts', 'modify_main_query');