Products
GG网络技术分享 2025-03-18 16:16 0
在同一个页面上显示多个站点的文章
有助于蜘蛛爬取更多的网页。
编写一个WordPress插件,以在同一个页面上显示多个站点的文章。以下是一种可能的方法来创建这样一个插件:
<?php/*
Plugin Name: Multisite Posts Display
Description: Display posts from multiple sites on a single page.
Version: 1.0
*/
function display_multisite_posts($atts) {
$atts = shortcode_atts(array(
'site_ids' => '',
'posts_per_site' => 5,
), $atts);
$site_ids = explode(',', $atts['site_ids']);
if (empty($site_ids)) {
return 'Please specify the site IDs in the shortcode.';
}
$output = '';
foreach ($site_ids as $site_id) {
switch_to_blog($site_id);
$args = array(
'post_type' => 'post',
'posts_per_page' => $atts['posts_per_site'],
);
$query = new WP_Query($args);
if ($query->have_posts()) {
$output .= '<h2>Site ' . $site_id . '</h2>';
$output .= '<ul>';
while ($query->have_posts()) {
$query->the_post();
$output .= '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
}
$output .= '</ul>';
}
restore_current_blog();
}
return $output;
}
add_shortcode('multisite_posts', 'display_multisite_posts');
上述代码创建了一个名为 "Multisite Posts Display" 的WordPress插件,它提供了一个名为 multisite_posts
的短代码。这个短代码接受两个参数:site_ids
(要显示文章的站点ID,用逗号分隔)和posts_per_site
(每个站点显示的文章数量)。您可以将此插件保存为PHP文件并将其上传到您的WordPress插件目录中,然后在WordPress后台启用它。
要在页面上显示多个站点的文章,只需在页面编辑器中使用以下短代码:
[multisite_posts site_ids="1,2,3" posts_per_site="5"]
这会显示站点ID为1、2和3的文章,并每个站点显示5篇文章。您可以根据需要自定义参数。
这个插件的示例代码是一个起点,您可以根据自己的需求扩展和定制它,以满足您的特定需求。
$output .= '<h2>Site ' . $site_id . '</h2>'; 可以换成调用站点默认分类吗要在插件中调用每个站点的默认分类名称,您可以使用 WordPress 的 get_bloginfo()
函数来获取站点的信息,包括站点的名称。在您的插件代码中,您可以将 $output
行修改如下:
$site_name = get_bloginfo('name'); // 获取当前站点的名称$output .= '<h2>Site: ' . $site_name . '</h2>';
这将使用 get_bloginfo('name')
获取当前站点的名称,并将其包含在标题中。这样,您可以在每个站点的文章列表上显示站点的名称。
请注意,这只会显示当前站点的名称,如果您希望在每个循环站点时显示不同站点的默认分类名称,您需要额外的逻辑来获取每个站点的默认分类名称。您可以使用 get_term()
函数来获取站点的默认分类,并显示其名称。以下是一个示例:
$site_id = get_current_blog_id(); // 获取当前站点的ID$default_category = get_option('default_category'); // 获取默认分类的ID
$default_category_name = get_term($default_category)->name; // 获取默认分类的名称
$output .= '<h2>Site: ' . $default_category_name . '</h2>';
这段代码会获取当前站点的ID,然后获取默认分类的ID,最后获取默认分类的名称并显示在标题中。这将为每个站点显示其默认分类的名称。
Demand feedback