最近大家都在忙些什么呢?今天有一位站长分享了一个获取网站TDK的接口,问我是否能够在友链中实现一键获取网站信息的功能。其实,这个功能早在之前初一站长就已经发布过相关教程了,不过,由于接口已经失效,加上版本更新,导致原有的实现方式不再适用。今天整理了一下原有的代码进行了二次开发,喜欢的朋友可以自行获取!
教程适用于子比主题最新 8.1 版本,勿将本文用于其它版本或主题。
演示效果

部署教程 将下方代码放置在主题目录下的function.php或者新建一个func.php文件
function zi<a href="https://blog.770504.asia/tag/b" title="更多关于 b 的文章-馨跃芸博客" target="_blank">b</a>_nav_links_ajax_hand() {
$url = isset($_GET['link_url']) ? sanitize_text_field($_GET['link_url']) : '';
if (empty($url)) {
wp_send_json_error(['msg' => '网址不能为空']);
}
try {
$api_response = zib_nav_links_curls('https://api.ahfi.cn/api/websiteinfo?url=' . urlencode($url));
$response_data = json_decode($api_response, true);
if ($response_data && isset($response_data['code']) && $response_data['code'] === 200) {
wp_send_json_success([
'title' => $response_data['data']['title'],
'description' => $response_data['data']['description'],
'msg' => $response_data['message']
]);
} else {
wp_send_json_error(['msg' => $response_data['message']]);
}
} catch (Exception $e) {
wp_send_json_error(['msg' => '请求API时发生错误: ' . $e->getMessage()]);
}
}
add_action('wp_ajax_zib_nav_links_ajax_hand', 'zib_nav_links_ajax_hand');
add_action('wp_ajax_nopriv_zib_nav_links_ajax_hand', 'zib_nav_links_ajax_hand');
function zib_nav_links_curls($url) {
$ch = curl_init();
$timeout = 30;
$ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36';
$options = [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_CONNECTTIMEOUT => $timeout,
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_USERAGENT => $ua,
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => FALSE
];
curl_setopt_array($ch, $options);
$content = curl_exec($ch);
if ($content === false) {
curl_close($ch);
throw new Exception("cURL Error: " . curl_error($ch));
}
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode !== 200) {
throw new Exception("HTTP Error: " . $httpCode);
}
return trim(mb_convert_encoding($content, 'UTF-8', mb_detect_encoding($content)));
}
function zib_nav_javascript() {
?>
<script>
$(function() {
const buttonHtml = '<style>#link_description{width:87%;}</style><span class="abs-right" style="top: 68%;right:5px;"><button type="button" class="but jb-pink zbtool-submit" style="overflow: hidden; position: relative;line-height: 1.7;">一键获取</button></span>';
const inputTag = $('input[name="link_description"]');
if (inputTag.length === 0) return;
inputTag.after(buttonHtml);
function toggleButtonState(disabled) {
$('.zbtool-submit').prop('disabled', disabled);
}
$('.zbtool-submit').on('click', function() {
const url = $("input[name='link_url']").val();
if (!url) {
notyf("请输入网址", "danger", 0, "zib_nav_golink");
return;
}
toggleButtonState(true);
notyf("加载中,请稍等...", "load", 2000, "zib_nav_golink");
jQuery.ajax({
type: "GET",
dataType: "json",
url: "<?php echo esc_url(admin_url('admin-ajax.php')) ?>",
data: {
action: "zib_nav_links_ajax_hand",
link_url: url
},
success: function(response) {
toggleButtonState(false);
if (response.success) {
$("#link_name").val(response.data.title);
$("#link_description").val(response.data.description);
notyf(response.data.msg, "", 0, "zib_nav_golink");
} else {
notyf(response.data.msg, "danger", 0, "zib_nav_golink");
}
},
error: function(errorThrown) {
toggleButtonState(false);
console.error("Ajax请求失败:", errorThrown);
notyf("请求失败,请重试", "danger", 0, "zib_nav_golink");
}
});
});
});
</script>
<?php
}
add_action('wp_footer', 'zib_nav_javascript');
© 版权声明
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自易付通博客
THE END




















暂无评论内容