现在大家都变懒惰了,WordPress自带的链接添加项目太多,什么RSS的一大堆,其实现在都用不上。顶多就是个网站名+URL搞定。为此地质网@老白直接搞了个批量“快速添加链接”,演示效果以及代码如下:

功能使用:给你的WordPress网站添加一个友情链接页面(仿掘金)
功能代码
放置到主题/子主题的function.php文件底部即可
/**
* 批量快速添加链接功能 - https://www.dzw6.com/35193.html
*/
function dzw6_register_admin_menu_page() {
add_submenu_page(
'link-manager.php',
'批量添加链接',
'批量添加链接',
'manage_links',
'bulk-link-adder',
'dzw6_render_admin_page'
);
}
add_action('admin_menu', 'dzw6_register_admin_menu_page');
function dzw6_render_admin_page() {
?>
<div class="wrap">
<h1>批量快速添加链接</h1>
<p>功能介绍:<a href="https://www.dzw6.com/35193.html" target="_blank">https://www.dzw6.com/35193.html</a></p>
<p>请在下方文本框中输入链接信息,每组链接之间用<strong>一个空行</strong>隔开。每组链接内部格式如下:</p>
<ol>
<li>网站名称</li>
<li>网站地址 (必须包含 http:// 或 https://)</li>
<li>网站Logo地址 (图片URL)</li>
</ol>
<form method="post" action="<?php echo esc_url(admin_url('admin-post.php')); ?>">
<input type="hidden" name="action" value="bulk_add_links">
<?php wp_nonce_field('dzw6_bulk_add_nonce', 'dzw6_nonce_field'); ?>
<textarea name="bulk_links_data" rows="20" style="width: 100%; font-family: monospace;" placeholder="地质网论坛 https://www.dzw6.com/ https://www.dzw6.com/wp-content/uploads/2025/04/adpfe-bci8d.svg 下一个网站名..."></textarea>
<p class="submit">
<input type="submit" name="submit" id="submit" class="button button-primary" value="批量添加这些链接">
</p>
</form>
</div>
<?php
}
function dzw6_handle_form_submission() {
if (!isset($_POST['dzw6_nonce_field']) || !wp_verify_nonce($_POST['dzw6_nonce_field'], 'dzw6_bulk_add_nonce')) {
wp_die('安全验证失败,请重试。');
}
if (!current_user_can('manage_links')) {
wp_die('您没有权限管理链接。');
}
if (empty($_POST['bulk_links_data'])) {
wp_redirect(add_query_arg(['message' => 'no-data'], wp_get_referer()));
exit;
}
$raw_data = trim($_POST['bulk_links_data']);
if (empty($raw_data)) {
wp_redirect(add_query_arg(['message' => 'no-data'], wp_get_referer()));
exit;
}
$link_blocks = preg_split("/\n\s*\n/", $raw_data);
$added_count = 0;
$error_count = 0;
foreach ($link_blocks as $block) {
$lines = array_map('trim', explode("\n", trim($block)));
if (count($lines) !== 3) {
$error_count++;
continue;
}
$link_name = $lines[0];
$link_url = $lines[1];
$link_image = $lines[2];
if (empty($link_name) || !filter_var($link_url, FILTER_VALIDATE_URL) || !filter_var($link_image, FILTER_VALIDATE_URL)) {
$error_count++;
continue;
}
$link_data = [
'link_name' => $link_name,
'link_url' => esc_url_raw($link_url),
'link_image' => esc_url_raw($link_image),
'link_target' => '_blank',
'link_visible' => 'Y',
];
$link_id = wp_insert_link($link_data);
if ($link_id && !is_wp_error($link_id)) {
$added_count++;
} else {
$error_count++;
}
}
$redirect_url = add_query_arg([
'added' => $added_count,
'errors' => $error_count,
], admin_url('link-manager.php?page=bulk-link-adder'));
wp_redirect($redirect_url);
exit;
}
add_action('admin_post_bulk_add_links', 'dzw6_handle_form_submission');
function dzw6_show_admin_notices() {
if (isset($_GET['page']) && $_GET['page'] === 'bulk-link-adder') {
if (isset($_GET['added']) && intval($_GET['added']) > 0) {
echo '<div class="notice notice-success is-dismissible"><p>成功添加了 ' . intval($_GET['added']) . ' 个链接!</p></div>';
}
if (isset($_GET['errors']) && intval($_GET['errors']) > 0) {
echo '<div class="notice notice-warning is-dismissible"><p>有 ' . intval($_GET['errors']) . ' 个链接因格式错误未能添加,请检查您的输入格式。</p></div>';
}
if (isset($_GET['message']) && $_GET['message'] === 'no-data') {
echo '<div class="notice notice-error is-dismissible"><p>未检测到任何数据,请输入链接信息后再提交。</p></div>';
}
}
}
add_action('admin_notices', 'dzw6_show_admin_notices');
/**
* 批量快速添加链接功能 - https://www.dzw6.com/35193.html
*/
点击文末标签阅读更多WordPress优化和建站教程!





