<?php
/**
* Template name: ZibTF - 友链导航美化页面
* Description: 带有详情的导航美化页面(维吾尔语优化版)
*/
get_header();
$post_id = get_queried_object_id();
$is_link_detail = isset($_GET['link_id']) && is_numeric($_GET['link_id']) ? true : false;
$current_link = null;
// 添加链接状态检查函数
function check_link_status($url) {
if (empty($url)) return 'unknown';
$url = esc_url($url);
$domain = parse_url($url, PHP_URL_HOST);
$cache_key = 'link_status_' . md5($domain);
$cache = get_transient($cache_key);
if ($cache !== false) {
return $cache;
}
// 使用wp_remote_get检查链接状态
$response = wp_remote_head($url, array(
'timeout' => 5,
'redirection' => 2,
'user-agent' => 'Mozilla/5.0 (compatible; LinkChecker/1.0)'
));
if (is_wp_error($response)) {
$status = 'error';
} else {
$status_code = wp_remote_retrieve_response_code($response);
if ($status_code >= 200 && $status_code < 400) {
$status = 'active';
} else {
$status = 'inactive';
}
}
// 缓存24小时
set_transient($cache_key, $status, 24 * HOUR_IN_SECONDS);
return $status;
}
// 添加评分系统函数
function get_link_rating($link_id) {
$rating = get_post_meta($link_id, 'link_rating', true);
$rating_count = get_post_meta($link_id, 'link_rating_count', true);
if (empty($rating)) {
return array(
'average' => 0,
'count' => 0,
'stars' => '<div class="tengfei-rating-stars"><i class="fa fa-star-o"></i><i class="fa fa-star-o"></i><i class="fa fa-star-o"></i><i class="fa fa-star-o"></i><i class="fa fa-star-o"></i></div>'
);
}
$average_rating = round($rating / max(1, $rating_count), 1);
// 生成星星HTML
$stars_html = '<div class="tengfei-rating-stars" data-linkid="' . $link_id . '">';
for ($i = 1; $i <= 5; $i++) {
if ($i <= floor($average_rating)) {
$stars_html .= '<i class="fa fa-star rating-star" data-rating="' . $i . '" style="color:#ffc107;"></i>';
} elseif ($i == ceil($average_rating) && fmod($average_rating, 1) >= 0.5) {
$stars_html .= '<i class="fa fa-star-half-alt rating-star" data-rating="' . $i . '" style="color:#ffc107;"></i>';
} else {
$stars_html .= '<i class="fa fa-star-o rating-star" data-rating="' . $i . '" style="color:#ddd;"></i>';
}
}
$stars_html .= '</div>';
return array(
'average' => $average_rating,
'count' => $rating_count,
'stars' => $stars_html
);
}
if ($is_link_detail) {
$current_link = get_bookmark((int)$_GET['link_id']);
if (!$current_link) {
wp_redirect(get_permalink($post_id));
exit;
}
if (isset($_GET['update_visit']) && $_GET['update_visit'] == 1) {
$current_visits = get_post_meta($current_link->link_id, 'link_visit_count', true);
$new_visits = empty($current_visits) ? 1 : (int)$current_visits + 1;
update_post_meta($current_link->link_id, 'link_visit_count', $new_visits);
wp_redirect($current_link->link_url);
exit;
}
}
function get_link_visit_count($link_id) {
$visits = get_post_meta($link_id, 'link_visit_count', true);
return empty($visits) ? 0 : (int)$visits;
}
function get_link_heat_stars($link_id) {
$visits = get_link_visit_count($link_id);
$star_count = 0;
if ($visits >= 100) {
$star_count = 5;
} elseif ($visits >= 51) {
$star_count = 4;
} elseif ($visits >= 31) {
$star_count = 3;
} elseif ($visits >= 11) {
$star_count = 2;
} elseif ($visits >= 1) {
$star_count = 1;
}
$stars_html = '<span class="tengfei-heat-stars">';
for ($i = 1; $i <= $star_count; $i++) {
$stars_html .= '<i class="fa fa-star" style="color:#ffc107;"></i>';
}
for ($i = $star_count + 1; $i <= 5; $i++) {
$stars_html .= '<i class="fa fa-star-o" style="color:#ddd;"></i>';
}
$stars_html .= '</span>';
return $stars_html;
}
// 生成nonce
$visit_nonce = wp_create_nonce('update_link_visit');
$rating_nonce = wp_create_nonce('update_link_rating');
?>
<!DOCTYPE html>
<html dir="rtl" lang="ug">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 添加分享所需的meta标签 -->
<meta property="og:title" content="<?php echo $is_link_detail ? $current_link->link_name : 'دوستلۇق ئۇلانمىسى'; ?>">
<meta property="og:description" content="<?php echo $is_link_detail ? strip_tags($current_link->link_description) : 'دوستلۇق ئۇلانمىسى - ئۇيغۇر تور بىكەتلىرى'; ?>">
<meta property="og:image" content="<?php echo $is_link_detail && $current_link->link_image ? $current_link->link_image : 'https://www.vxras.com/wp-content/uploads/2024/05/猫爪.png'; ?>">
<meta property="og:url" content="<?php echo $is_link_detail ? add_query_arg('link_id', $current_link->link_id, get_permalink($post_id)) : get_permalink($post_id); ?>">
</head>
<style>
/* 基础样式 */
:root {
--tengfei-primary: #4285f4;
--tengfei-primary-light: #e8f0fe;
--tengfei-primary-hover: #3367d6;
--tengfei-gray: #f5f7fa;
--tengfei-gray-deep: #e9ecef;
--tengfei-border: #dee2e6;
--tengfei-text-secondary: #6c757d;
--tengfei-radius: 10px;
--tengfei-shadow: 0 3px 15px rgba(0,0,0,0.08);
--tengfei-shadow-hover: 0 6px 25px rgba(0,0,0,0.12);
--heat-star-color: #ffc107;
--status-active: #4caf50;
--status-inactive: #ff9800;
--status-error: #f44336;
--status-unknown: #9e9e9e;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: 'Segoe UI', Tahoma, 'Noto Sans Arabic', 'Droid Arabic Naskh', sans-serif;
background: linear-gradient(135deg, #f5f7fa 0%, #e4edf5 100%);
color: #333;
line-height: 1.5;
min-height: 100vh;
}
.tengfei-wrapper {
max-width: 1200px;
margin: 0 auto;
padding: 0 15px;
}
/* 链接状态指示器 */
.tengfei-link-status {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 3px 8px;
border-radius: 12px;
font-size: 10px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.5px;
margin-left: 8px;
}
.tengfei-link-status.active {
background-color: rgba(76, 175, 80, 0.1);
color: var(--status-active);
border: 1px solid rgba(76, 175, 80, 0.2);
}
.tengfei-link-status.inactive {
background-color: rgba(255, 152, 0, 0.1);
color: var(--status-inactive);
border: 1px solid rgba(255, 152, 0, 0.2);
}
.tengfei-link-status.error {
background-color: rgba(244, 67, 54, 0.1);
color: var(--status-error);
border: 1px solid rgba(244, 67, 54, 0.2);
}
.tengfei-link-status.unknown {
background-color: rgba(158, 158, 158, 0.1);
color: var(--status-unknown);
border: 1px solid rgba(158, 158, 158, 0.2);
}
.tengfei-link-status i {
font-size: 8px;
}
/* 评分系统 */
.tengfei-rating-container {
display: flex;
align-items: center;
gap: 8px;
margin-top: 5px;
}
.tengfei-rating-stars {
display: inline-flex;
gap: 1px;
}
.tengfei-rating-stars i {
font-size: 12px;
cursor: pointer;
transition: all 0.2s ease;
}
.tengfei-rating-stars i:hover {
transform: scale(1.2);
}
.tengfei-rating-stars i.rated {
color: #ffc107 !important;
}
.tengfei-rating-score {
font-size: 11px;
color: var(--tengfei-text-secondary);
font-weight: 600;
}
.tengfei-rating-count {
font-size: 10px;
color: #999;
}
/* 详情页评分区域 */
.tengfei-detail-rating {
display: flex;
align-items: center;
gap: 15px;
padding: 12px;
background: linear-gradient(135deg, #f9fbfd, #f0f5fb);
border-radius: var(--tengfei-radius);
margin-top: 10px;
}
.tengfei-detail-rating-stars i {
font-size: 18px;
}
.tengfei-detail-rating-info {
display: flex;
flex-direction: column;
gap: 3px;
}
.tengfei-detail-rating-average {
font-size: 24px;
font-weight: 700;
color: #333;
}
.tengfei-detail-rating-count {
font-size: 12px;
color: var(--tengfei-text-secondary);
}
/* 分享功能 */
.tengfei-share-container {
display: flex;
align-items: center;
gap: 10px;
padding: 15px;
background: white;
border-radius: var(--tengfei-radius);
box-shadow: 0 2px 8px rgba(0,0,0,0.05);
margin-top: 20px;
}
.tengfei-share-label {
font-size: 14px;
font-weight: 600;
color: #333;
white-space: nowrap;
}
.tengfei-share-buttons {
display: flex;
gap: 8px;
flex-wrap: wrap;
}
.tengfei-share-btn {
display: flex;
align-items: center;
gap: 6px;
padding: 8px 15px;
border-radius: 6px;
font-size: 13px;
font-weight: 600;
text-decoration: none;
transition: all 0.3s ease;
border: none;
cursor: pointer;
color: white;
min-width: 90px;
justify-content: center;
}
.tengfei-share-btn i {
font-size: 14px;
}
.tengfei-share-btn:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.tengfei-share-weibo {
background: linear-gradient(135deg, #e6162d, #ff2a42);
}
.tengfei-share-wechat {
background: linear-gradient(135deg, #2ad136, #4caf50);
}
.tengfei-share-qq {
background: linear-gradient(135deg, #12b7f5, #1e88e5);
}
.tengfei-share-twitter {
background: linear-gradient(135deg, #1da1f2, #0d8bdb);
}
.tengfei-share-facebook {
background: linear-gradient(135deg, #4267b2, #3b5998);
}
.tengfei-share-copy {
background: linear-gradient(135deg, var(--tengfei-primary), #6200ea);
}
.tengfei-share-copied {
background: linear-gradient(135deg, #4caf50, #2e7d32) !important;
}
/* 微信分享二维码模态框 */
.tengfei-wechat-modal {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0,0,0,0.7);
z-index: 9999;
justify-content: center;
align-items: center;
}
.tengfei-wechat-modal-content {
background: white;
padding: 25px;
border-radius: var(--tengfei-radius);
text-align: center;
max-width: 300px;
width: 90%;
box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}
.tengfei-wechat-modal-title {
font-size: 18px;
font-weight: 700;
margin-bottom: 15px;
color: #333;
}
.tengfei-wechat-qrcode {
width: 200px;
height: 200px;
margin: 0 auto 15px;
padding: 10px;
background: white;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.tengfei-wechat-qrcode canvas {
width: 100% !important;
height: 100% !important;
}
.tengfei-wechat-modal-close {
margin-top: 15px;
padding: 8px 20px;
background: var(--tengfei-primary);
color: white;
border: none;
border-radius: 6px;
cursor: pointer;
font-size: 14px;
transition: all 0.3s ease;
}
.tengfei-wechat-modal-close:hover {
background: var(--tengfei-primary-hover);
}
/* 复制成功提示 */
.tengfei-copy-notification {
position: fixed;
bottom: 30px;
left: 50%;
transform: translateX(-50%) translateY(100px);
background: #4caf50;
color: white;
padding: 12px 25px;
border-radius: var(--tengfei-radius);
box-shadow: 0 5px 20px rgba(76, 175, 80, 0.3);
font-size: 14px;
font-weight: 600;
z-index: 10000;
transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
display: flex;
align-items: center;
gap: 8px;
}
.tengfei-copy-notification.show {
transform: translateX(-50%) translateY(0);
}
/* RTL 特定调整 - 修改分类标题布局 */
.tengfei-nav {
margin-left: 0;
margin-right: 20px;
}
.tengfei-link-icon {
margin-left: 15px;
margin-right: 0;
}
/* 分类标题布局调整到右边 */
.tengfei-links-title {
flex-direction: row-reverse; /* RTL: 将内容反转到右边 */
justify-content: flex-end; /* RTL: 从右边开始 */
}
.tengfei-links-title::before {
content: '';
width: 4px;
height: 20px;
background: linear-gradient(to bottom, var(--tengfei-primary), #6200ea);
border-radius: 2px;
margin-left: 8px; /* RTL: 右边距 */
margin-right: 0;
order: 2; /* 将竖线放在右边 */
}
.tengfei-links-title-text {
order: 1; /* 文字放在左边 */
}
.tengfei-links-count {
order: 0; /* 数量放在最左边 */
margin-left: 10px; /* RTL: 左边距 */
margin-right: 0;
}
/* 详情页标题同样调整 */
.tengfei-detail-section-title {
flex-direction: row-reverse;
justify-content: flex-end;
}
.tengfei-detail-section-title::before {
margin-left: 8px;
margin-right: 0;
order: 2;
}
/* 顶部横幅 */
.tengfei-search-wrap {
height: 280px;
background: linear-gradient(rgba(66, 133, 244, 0.85), rgba(51, 103, 214, 0.85)),
url('https://img.alicdn.com/imgextra/i4/2210123621994/O1CN01bJKBvv1QbIqafag3J_!!2210123621994.webp');
background-size: cover;
background-position: center;
background-attachment: scroll;
border-radius: var(--tengfei-radius);
position: relative;
margin: 20px 0 30px;
overflow: hidden;
box-shadow: 0 8px 30px rgba(66, 133, 244, 0.25);
animation: fadeIn 0.8s ease-out;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(15px); }
to { opacity: 1; transform: translateY(0); }
}
.tengfei-search-inner {
position: relative;
z-index: 2;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: 0 15px;
max-width: 800px;
margin: 0 auto;
}
.tengfei-search-title {
color: white;
font-size: 32px;
margin-bottom: 20px;
font-weight: 700;
text-align: center;
text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
animation: slideUp 0.6s ease-out 0.2s both;
}
@keyframes slideUp {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
/* 搜索区域 */
.search-tmenu {
display: flex;
justify-content: center;
gap: 15px;
margin-bottom: 20px;
flex-wrap: wrap;
}
.search-tmenu li {
color: rgba(255, 255, 255, 0.95);
font-size: 15px;
cursor: pointer;
padding: 8px 16px;
border-radius: 25px;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(8px);
border: 1px solid rgba(255, 255, 255, 0.2);
white-space: nowrap;
}
.search-tmenu li:hover {
background: rgba(255, 255, 255, 0.2);
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}
.search-tmenu li.active {
background: white;
color: var(--tengfei-primary);
font-weight: 600;
box-shadow: 0 6px 20px rgba(255, 255, 255, 0.25);
}
/* 搜索框 */
#tengfeiSearchForm {
width: 100%;
max-width: 600px;
display: flex;
border-radius: 50px;
overflow: hidden;
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
animation: scaleIn 0.6s ease-out 0.3s both;
background: white;
}
@keyframes scaleIn {
from { opacity: 0; transform: scale(0.95); }
to { opacity: 1; transform: scale(1); }
}
#searchinput {
flex-grow: 1;
height: 52px;
padding: 0 20px;
border: none;
font-size: 16px;
outline: none;
background: white;
font-family: inherit;
direction: rtl;
width: calc(100% - 130px);
}
#searchinput::placeholder {
color: #999;
opacity: 0.8;
}
#searc-submit {
width: 130px;
height: 52px;
border: none;
background: linear-gradient(135deg, var(--tengfei-primary), #6200ea);
color: white;
font-size: 16px;
font-weight: 600;
cursor: pointer;
transition: all 0.3s ease;
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
flex-shrink: 0;
}
#searc-submit:hover {
background: linear-gradient(135deg, var(--tengfei-primary-hover), #4a00c4);
transform: translateX(-2px);
}
/* 搜索分类标签 */
.search-bmenu {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 10px;
margin-top: 20px;
animation: fadeInUp 0.6s ease-out 0.4s both;
max-width: 100%;
overflow-x: auto;
padding: 5px 0;
-webkit-overflow-scrolling: touch; /* 移动端平滑滚动 */
}
@keyframes fadeInUp {
from { opacity: 0; transform: translateY(15px); }
to { opacity: 1; transform: translateY(0); }
}
.search-bmenu li {
padding: 6px 15px;
background: rgba(255, 255, 255, 0.15);
color: white;
border-radius: 20px;
font-size: 13px;
cursor: pointer;
transition: all 0.3s ease;
border: 1px solid rgba(255, 255, 255, 0.25);
backdrop-filter: blur(8px);
white-space: nowrap;
flex-shrink: 0;
}
.search-bmenu li:hover {
background: rgba(255, 255, 255, 0.25);
transform: translateY(-2px);
}
.search-bmenu li.on {
background: white;
color: var(--tengfei-primary);
font-weight: 600;
box-shadow: 0 4px 12px rgba(255, 255, 255, 0.25);
}
/* 隐藏不需要的subnav项 */
.subnav {
width: 100%;
}
.subnav-item {
display: none;
}
.subnav-item.active {
display: block;
}
/* 布局容器 */
.tengfei-links-container {
display: flex;
gap: 20px;
margin-top: 30px;
}
/* 左侧导航 */
.tengfei-nav {
width: 240px;
flex-shrink: 0;
}
.tengfei-nav-box {
position: sticky;
top: 20px;
background: white;
border-radius: var(--tengfei-radius);
box-shadow: var(--tengfei-shadow);
overflow: hidden;
transition: transform 0.3s ease;
}
.tengfei-nav-box:hover {
transform: translateY(-3px);
}
.tengfei-nav-header {
padding: 18px 20px;
background: linear-gradient(135deg, var(--tengfei-primary), #6200ea);
color: white;
font-weight: 700;
font-size: 17px;
display: flex;
align-items: center;
gap: 10px;
}
.tengfei-nav-header i {
font-size: 20px;
}
.tengfei-nav-list {
padding: 10px 0;
}
.tengfei-nav-item {
margin: 3px 0;
}
.tengfei-nav-link {
display: flex;
align-items: center;
gap: 10px;
padding: 12px 20px;
font-size: 14px;
color: #555;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
text-decoration: none;
border-right: 3px solid transparent;
}
.tengfei-nav-link:hover {
background: linear-gradient(90deg, var(--tengfei-primary-light) 0%, transparent 100%);
color: var(--tengfei-primary);
padding-right: 22px;
}
.tengfei-nav-link.active {
background: linear-gradient(90deg, var(--tengfei-primary-light) 0%, transparent 100%);
color: var(--tengfei-primary);
border-right-color: var(--tengfei-primary);
font-weight: 600;
}
/* 内容区域 */
.tengfei-content {
flex: 1;
min-width: 0;
}
/* 链接卡片 */
.tengfei-links-section {
background: white;
border-radius: var(--tengfei-radius);
padding: 20px;
box-shadow: var(--tengfei-shadow);
margin-bottom: 20px;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.tengfei-links-section:hover {
box-shadow: var(--tengfei-shadow-hover);
transform: translateY(-3px);
}
.tengfei-links-header {
padding-bottom: 15px;
border-bottom: 2px solid var(--tengfei-border);
margin-bottom: 20px;
display: flex;
justify-content: space-between;
align-items: center;
}
.tengfei-links-title {
font-size: 18px;
font-weight: 700;
color: #333;
margin: 0;
display: flex;
align-items: center;
gap: 8px;
}
.tengfei-links-count {
color: var(--tengfei-text-secondary);
font-size: 13px;
font-weight: normal;
background: var(--tengfei-gray);
padding: 3px 10px;
border-radius: 15px;
}
.tengfei-links-list {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 15px;
}
.tengfei-link-card {
display: flex;
align-items: center;
padding: 18px;
background: linear-gradient(135deg, #ffffff 0%, #f9fbfd 100%);
border-radius: var(--tengfei-radius);
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
overflow: hidden;
border: 1px solid rgba(66, 133, 244, 0.1);
}
.tengfei-link-card:hover {
background: linear-gradient(135deg, var(--tengfei-primary-light) 0%, #e3f2fd 100%);
transform: translateY(-5px);
box-shadow: 0 15px 30px rgba(66, 133, 244, 0.12);
border-color: var(--tengfei-primary);
}
.tengfei-link-icon {
width: 55px;
height: 55px;
border-radius: 12px;
background: white;
overflow: hidden;
flex-shrink: 0;
box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
transition: transform 0.3s ease;
}
.tengfei-link-card:hover .tengfei-link-icon {
transform: scale(1.08) rotate(3deg);
}
.tengfei-link-icon img {
width: 100%;
height: 100%;
object-fit: cover;
}
.tengfei-link-content {
flex: 1;
overflow: hidden;
margin-left: 15px;
min-width: 0;
}
.tengfei-link-name {
font-size: 15px;
font-weight: 700;
margin: 0 0 5px;
color: #333;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
display: flex;
align-items: center;
}
.tengfei-link-desc {
font-size: 12px;
color: var(--tengfei-text-secondary);
margin: 0 0 8px;
line-height: 1.4;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
height: 2.8em;
}
.tengfei-link-heat {
display: flex;
align-items: center;
gap: 8px;
font-size: 11px;
color: #666;
margin: 0;
flex-wrap: wrap;
}
.tengfei-heat-stars i {
font-size: 12px;
margin: 0 1px;
transition: transform 0.3s ease;
}
.tengfei-link-card:hover .tengfei-heat-stars i {
transform: scale(1.1);
}
.tengfei-link-actions {
display: flex;
gap: 8px;
margin-left: 15px;
flex-shrink: 0;
}
.tengfei-link-btn {
padding: 7px 15px;
border-radius: 6px;
font-size: 12px;
font-weight: 600;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
text-align: center;
cursor: pointer;
text-decoration: none;
display: inline-block;
border: none;
white-space: nowrap;
}
.tengfei-link-detail {
background: white;
color: var(--tengfei-primary);
border: 1px solid var(--tengfei-primary);
}
.tengfei-link-detail:hover {
background: var(--tengfei-primary);
color: white;
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(66, 133, 244, 0.25);
}
.tengfei-link-visit {
background: linear-gradient(135deg, var(--tengfei-primary), #6200ea);
color: white;
border: 1px solid transparent;
}
.tengfei-link-visit:hover {
background: linear-gradient(135deg, var(--tengfei-primary-hover), #4a00c4);
transform: translateY(-2px);
box-shadow: 0 4px 15px rgba(66, 133, 244, 0.35);
}
/* 详情页面 */
.tengfei-breadcrumb {
padding: 12px 0;
font-size: 13px;
color: var(--tengfei-text-secondary);
direction: rtl;
}
.tengfei-breadcrumb a {
color: var(--tengfei-primary);
transition: color 0.2s;
text-decoration: none;
}
.tengfei-breadcrumb a:hover {
color: var(--tengfei-primary-hover);
text-decoration: underline;
}
.tengfei-breadcrumb span {
margin: 0 6px;
opacity: 0.6;
}
.tengfei-detail-wrap {
background: white;
border-radius: var(--tengfei-radius);
padding: 25px;
box-shadow: var(--tengfei-shadow);
margin-top: 20px;
animation: fadeIn 0.6s ease-out;
}
.tengfei-detail-header {
display: flex;
align-items: center;
gap: 20px;
padding-bottom: 20px;
border-bottom: 2px solid var(--tengfei-border);
margin-bottom: 20px;
}
.tengfei-detail-icon {
width: 90px;
height: 90px;
border-radius: 20px;
background: linear-gradient(135deg, #f5f7fa, #e4edf5);
overflow: hidden;
flex-shrink: 0;
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
transition: transform 0.3s ease;
}
.tengfei-detail-icon:hover {
transform: rotate(3deg) scale(1.03);
}
.tengfei-detail-icon img {
width: 100%;
height: 100%;
object-fit: cover;
}
.tengfei-detail-header-content {
flex: 1;
min-width: 0;
}
.tengfei-detail-title {
font-size: 24px;
font-weight: 800;
margin: 0 0 10px;
color: #333;
line-height: 1.2;
word-wrap: break-word;
display: flex;
align-items: center;
gap: 10px;
}
.tengfei-detail-header-heat {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 15px;
flex-wrap: wrap;
}
.tengfei-detail-heat-count {
font-size: 14px;
color: var(--tengfei-text-secondary);
background: var(--tengfei-gray);
padding: 6px 12px;
border-radius: 15px;
}
.tengfei-detail-heat-stars i {
font-size: 15px;
margin: 0 2px;
}
.tengfei-detail-url {
font-size: 14px;
color: var(--tengfei-primary);
margin: 0 0 15px;
word-break: break-all;
direction: ltr;
text-align: right;
font-family: monospace;
}
.tengfei-detail-header-actions {
display: flex;
gap: 10px;
flex-shrink: 0;
flex-wrap: wrap;
}
.tengfei-detail-content {
padding: 15px 0;
}
.tengfei-detail-section {
margin-bottom: 25px;
}
.tengfei-detail-section-title {
font-size: 17px;
font-weight: 700;
margin: 0 0 15px;
color: #333;
display: flex;
align-items: center;
gap: 8px;
}
.tengfei-detail-desc {
font-size: 15px;
color: #444;
line-height: 1.6;
margin: 0;
padding: 18px;
background: linear-gradient(135deg, #f9fbfd, #f0f5fb);
border-radius: var(--tengfei-radius);
border-right: 3px solid var(--tengfei-primary);
text-align: justify;
}
.tengfei-detail-meta {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 15px;
padding: 18px;
background: linear-gradient(135deg, #f9fbfd, #f0f5fb);
border-radius: var(--tengfei-radius);
}
.tengfei-detail-meta-item {
display: flex;
align-items: center;
gap: 8px;
font-size: 13px;
color: #555;
padding: 12px;
background: white;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
transition: transform 0.3s ease;
}
.tengfei-detail-meta-item:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.tengfei-detail-meta-label {
font-weight: 600;
color: var(--tengfei-primary);
min-width: 100px;
}
/* 返回按钮 */
.tengfei-back-list {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 12px 25px;
background: linear-gradient(135deg, var(--tengfei-primary), #6200ea);
border-radius: 25px;
font-size: 14px;
font-weight: 600;
color: white;
text-decoration: none;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
margin-top: 20px;
border: none;
cursor: pointer;
}
.tengfei-back-list:hover {
transform: translateY(-2px) translateX(-3px);
box-shadow: 0 8px 20px rgba(66, 133, 244, 0.35);
gap: 10px;
}
/* 移动端导航 */
.tengfei-mobile-nav {
display: none;
background: white;
border-radius: var(--tengfei-radius);
box-shadow: var(--tengfei-shadow);
overflow: hidden;
margin-bottom: 15px;
}
.tengfei-mobile-nav-header {
padding: 15px;
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 2px solid var(--tengfei-border);
font-weight: 700;
font-size: 16px;
color: #333;
background: linear-gradient(135deg, var(--tengfei-primary-light), transparent);
}
.tengfei-mobile-nav-toggle {
background: none;
border: none;
font-size: 18px;
cursor: pointer;
color: var(--tengfei-primary);
transition: all 0.3s ease;
width: 36px;
height: 36px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
}
.tengfei-mobile-nav-toggle:hover {
background: var(--tengfei-primary-light);
transform: rotate(180deg);
}
.tengfei-mobile-nav-list {
max-height: 0;
overflow: hidden;
transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.tengfei-mobile-nav-list.show {
max-height: 400px;
}
.tengfei-mobile-nav-item {
border-bottom: 1px solid var(--tengfei-border);
}
.tengfei-mobile-nav-item:last-child {
border-bottom: none;
}
.tengfei-mobile-nav-link {
display: block;
padding: 14px 20px;
font-size: 14px;
color: #555;
transition: all 0.3s ease;
text-decoration: none;
border-right: 3px solid transparent;
}
.tengfei-mobile-nav-link:hover {
background: var(--tengfei-primary-light);
color: var(--tengfei-primary);
padding-right: 22px;
}
.tengfei-mobile-nav-link.active {
background: var(--tengfei-primary-light);
color: var(--tengfei-primary);
border-right-color: var(--tengfei-primary);
font-weight: 600;
}
.tengfei-mobile-submit {
padding: 15px;
background: linear-gradient(135deg, var(--tengfei-primary-light), transparent);
}
.tengfei-mobile-submit-btn {
display: block;
width: 100%;
padding: 14px 0;
text-align: center;
background: linear-gradient(135deg, var(--tengfei-primary), #6200ea);
color: white;
border-radius: 8px;
font-size: 14px;
font-weight: 600;
transition: all 0.3s ease;
text-decoration: none;
}
.tengfei-mobile-submit-btn:hover {
background: linear-gradient(135deg, var(--tengfei-primary-hover), #4a00c4);
transform: translateY(-2px);
box-shadow: 0 6px 15px rgba(66, 133, 244, 0.25);
}
/* 返回顶部按钮 */
.tengfei-backtop {
position: fixed;
bottom: 30px;
left: 30px;
width: 48px;
height: 48px;
background: linear-gradient(135deg, var(--tengfei-primary), #6200ea);
color: white;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
box-shadow: 0 8px 25px rgba(66, 133, 244, 0.35);
cursor: pointer;
opacity: 0;
visibility: hidden;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
z-index: 1000;
font-size: 18px;
border: none;
}
.tengfei-backtop:hover {
background: linear-gradient(135deg, var(--tengfei-primary-hover), #4a00c4);
transform: translateY(-8px) scale(1.08);
box-shadow: 0 12px 35px rgba(66, 133, 244, 0.5);
}
.tengfei-backtop.show {
opacity: 1;
visibility: visible;
}
/* 空状态 */
.tengfei-empty {
background: linear-gradient(135deg, #ffffff, #f9fbfd);
border-radius: var(--tengfei-radius);
padding: 40px 20px;
text-align: center;
box-shadow: var(--tengfei-shadow);
margin-top: 30px;
border: 2px dashed var(--tengfei-border);
}
.tengfei-empty-icon {
font-size: 60px;
color: var(--tengfei-gray-deep);
margin-bottom: 20px;
opacity: 0.6;
}
.tengfei-empty-text {
font-size: 16px;
color: var(--tengfei-text-secondary);
margin: 0 0 20px;
line-height: 1.5;
}
.tengfei-empty-btn {
display: inline-block;
padding: 12px 30px;
background: linear-gradient(135deg, var(--tengfei-primary), #6200ea);
color: white;
border-radius: 25px;
font-size: 14px;
font-weight: 600;
transition: all 0.3s ease;
text-decoration: none;
border: none;
cursor: pointer;
}
.tengfei-empty-btn:hover {
background: linear-gradient(135deg, var(--tengfei-primary-hover), #4a00c4);
transform: translateY(-2px);
box-shadow: 0 8px 20px rgba(66, 133, 244, 0.35);
}
/* 提交申请按钮 */
.tengfei-submit-btn {
display: block;
width: calc(100% - 40px);
margin: 20px auto;
padding: 14px 0;
text-align: center;
background: linear-gradient(135deg, var(--tengfei-primary), #6200ea);
color: white;
border-radius: 8px;
font-size: 14px;
font-weight: 600;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
text-decoration: none;
box-shadow: 0 4px 12px rgba(66, 133, 244, 0.25);
}
.tengfei-submit-btn:hover {
background: linear-gradient(135deg, var(--tengfei-primary-hover), #4a00c4);
transform: translateY(-2px);
box-shadow: 0 8px 20px rgba(66, 133, 244, 0.4);
}
/* 响应式设计 - 修复移动端搜索区域 */
@media (max-width: 1200px) {
.tengfei-wrapper {
max-width: 100%;
padding: 0 12px;
}
.tengfei-links-list {
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}
.tengfei-nav {
width: 220px;
margin-right: 15px;
}
}
@media (max-width: 992px) {
.tengfei-nav {
display: none;
}
.tengfei-mobile-nav {
display: block;
}
.tengfei-links-container {
flex-direction: column;
gap: 15px;
margin-top: 15px;
}
.tengfei-links-list {
grid-template-columns: 1fr;
}
.tengfei-detail-meta {
grid-template-columns: 1fr;
}
/* 移动端搜索区域优化 */
.tengfei-search-wrap {
height: auto; /* 改为自适应高度 */
min-height: 280px;
padding: 30px 15px;
margin: 15px 0 20px;
}
.tengfei-search-inner {
justify-content: flex-start;
padding-top: 20px;
}
.tengfei-search-title {
font-size: 28px;
margin-bottom: 20px;
line-height: 1.3;
}
.search-tmenu {
gap: 8px;
margin-bottom: 20px;
}
.search-tmenu li {
font-size: 13px;
padding: 7px 12px;
flex: 1;
min-width: 80px;
text-align: center;
}
#tengfeiSearchForm {
max-width: 100%;
margin: 0 auto;
}
#searchinput {
height: 50px;
font-size: 15px;
padding: 0 15px;
}
#searc-submit {
height: 50px;
width: 100px;
font-size: 14px;
}
.search-bmenu {
gap: 6px;
margin-top: 15px;
justify-content: flex-start;
padding: 10px 0;
}
.search-bmenu li {
padding: 5px 10px;
font-size: 12px;
}
.subnav {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
padding-bottom: 5px;
}
/* 移动端分享按钮 */
.tengfei-share-container {
flex-direction: column;
align-items: flex-start;
}
.tengfei-share-buttons {
width: 100%;
}
.tengfei-share-btn {
flex: 1;
min-width: 0;
}
}
@media (max-width: 768px) {
/* 移动端搜索区域进一步优化 */
.tengfei-search-wrap {
min-height: 240px;
padding: 25px 12px;
margin: 12px 0 15px;
}
.tengfei-search-title {
font-size: 22px;
margin-bottom: 15px;
}
.search-tmenu {
gap: 6px;
margin-bottom: 15px;
}
.search-tmenu li {
font-size: 12px;
padding: 6px 10px;
min-width: 70px;
}
#tengfeiSearchForm {
border-radius: 25px;
}
#searchinput {
height: 48px;
font-size: 14px;
padding: 0 15px;
}
#searc-submit {
height: 48px;
width: 90px;
font-size: 13px;
}
.search-bmenu {
gap: 5px;
margin-top: 12px;
}
.search-bmenu li {
padding: 4px 8px;
font-size: 11px;
}
.tengfei-link-card {
flex-direction: column;
align-items: flex-start;
padding: 15px;
}
.tengfei-link-icon {
margin-left: 0;
margin-bottom: 12px;
}
.tengfei-link-content {
margin-left: 0;
width: 100%;
}
.tengfei-link-actions {
width: 100%;
margin-left: 0;
margin-top: 12px;
justify-content: flex-end;
}
.tengfei-detail-wrap {
padding: 15px;
}
.tengfei-detail-header {
flex-direction: column;
align-items: flex-start;
gap: 15px;
}
.tengfei-detail-icon {
width: 70px;
height: 70px;
}
.tengfei-detail-title {
font-size: 20px;
}
.tengfei-detail-header-actions {
width: 100%;
justify-content: flex-end;
}
.tengfei-backtop {
width: 42px;
height: 42px;
bottom: 15px;
left: 15px;
font-size: 16px;
}
}
@media (max-width: 480px) {
/* 移动端搜索区域小屏幕优化 */
.tengfei-search-wrap {
min-height: 220px;
padding: 20px 10px;
margin: 10px 0;
border-radius: 8px;
}
.tengfei-search-title {
font-size: 20px;
margin-bottom: 12px;
}
.search-tmenu {
flex-wrap: nowrap;
overflow-x: auto;
justify-content: flex-start;
padding-bottom: 5px;
margin: 0 -5px 15px;
-webkit-overflow-scrolling: touch;
}
.search-tmenu li {
flex: 0 0 auto;
white-space: nowrap;
}
#tengfeiSearchForm {
flex-direction: column;
border-radius: 12px;
overflow: hidden;
}
#searchinput {
height: 45px;
border-radius: 12px 12px 0 0;
font-size: 14px;
padding: 0 15px;
width: 100%;
}
#searc-submit {
width: 100%;
height: 45px;
border-radius: 0 0 12px 12px;
font-size: 14px;
}
.search-bmenu {
gap: 4px;
margin-top: 10px;
}
.search-bmenu li {
padding: 4px 8px;
font-size: 10px;
border-radius: 15px;
}
.tengfei-links-section {
padding: 15px;
}
.tengfei-links-title {
font-size: 16px;
}
.tengfei-link-name {
font-size: 14px;
}
.tengfei-link-actions {
flex-direction: column;
gap: 8px;
}
.tengfei-link-btn {
width: 100%;
padding: 8px;
}
.tengfei-wrapper {
padding: 0 10px;
}
/* 移动端分类标题优化 */
.tengfei-links-header {
flex-direction: column;
align-items: flex-start;
gap: 10px;
}
.tengfei-links-title {
width: 100%;
justify-content: space-between;
}
.tengfei-links-count {
margin-left: 0;
align-self: flex-start;
}
}
@media (max-width: 360px) {
.tengfei-search-title {
font-size: 18px;
}
.search-tmenu li {
font-size: 11px;
padding: 5px 8px;
min-width: 60px;
}
#searchinput {
height: 42px;
font-size: 13px;
}
#searc-submit {
height: 42px;
font-size: 13px;
}
.search-bmenu li {
font-size: 9px;
padding: 3px 6px;
}
.tengfei-share-btn {
min-width: 0;
padding: 8px 10px;
font-size: 12px;
}
}
/* 加载动画 */
@keyframes pulse {
0% { transform: scale(1); }
50% { transform: scale(1.03); }
100% { transform: scale(1); }
}
.loading {
animation: pulse 1.2s ease-in-out infinite;
}
/* 滚动条样式 */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: #f1f1f1;
border-radius: 8px;
}
::-webkit-scrollbar-thumb {
background: linear-gradient(135deg, var(--tengfei-primary), #6200ea);
border-radius: 8px;
}
::-webkit-scrollbar-thumb:hover {
background: linear-gradient(135deg, var(--tengfei-primary-hover), #4a00c4);
}
/* 移动端触摸优化 */
@media (hover: none) and (pointer: coarse) {
.tengfei-link-btn,
.search-tmenu li,
.search-bmenu li,
.tengfei-nav-link,
.tengfei-mobile-nav-link {
min-height: 44px; /* 苹果推荐的最小触摸目标尺寸 */
touch-action: manipulation; /* 优化触摸响应 */
}
.tengfei-link-card:hover {
transform: none; /* 移动端移除悬停效果 */
}
.search-tmenu li:active,
.search-bmenu li:active,
.tengfei-link-btn:active {
transform: scale(0.98);
transition: transform 0.1s ease;
}
}
</style>
<body class="archive post-type-archive post-type-archive-links" dir="rtl">
<div id="page" class="site">
<div id="content" class="site-content">
<div class="tengfei-wrapper">
<!-- 移动端导航 -->
<div class="tengfei-mobile-nav">
<div class="tengfei-mobile-nav-header">
<span>تور ئادرېسىنى تۈرگە ئايرىپ يول باشلاش</span>
<button class="tengfei-mobile-nav-toggle" id="tengfeiMobileNavToggle">
<i class="fa fa-chevron-down"></i>
</button>
</div>
<div class="tengfei-mobile-nav-list" id="tengfeiMobileNavList">
<?php
$link_cats = get_terms('link_category', array('hide_empty' => true));
if (!empty($link_cats) && !is_wp_error($link_cats)):
foreach ($link_cats as $key => $link_cat):
$active = $key == 0 ? 'active' : '';
echo '<div class="tengfei-mobile-nav-item">';
echo '<a href="#tengfei-link-' . $link_cat->term_id . '" class="tengfei-mobile-nav-link ' . $active . '" data-catid="' . $link_cat->term_id . '">';
echo $link_cat->name;
echo '</a></div>';
endforeach;
endif;
?>
<div class="tengfei-mobile-submit">
<a href="#submit-links-modal" data-toggle="modal" class="tengfei-mobile-submit-btn">
<i class="fa fa-plus-circle"></i> ئىلتىماس قىلىش
</a>
</div>
</div>
</div>
<?php if (!$is_link_detail): ?>
<!-- 首页布局 -->
<div class="tengfei-links-container">
<!-- 左侧导航 -->
<div class="tengfei-nav">
<div class="tengfei-nav-box">
<div class="tengfei-nav-header">
<i class="fa fa-compass"></i>
<span>دوستلۇق ئۇلانمىسى</span>
</div>
<ul class="tengfei-nav-list" id="tengfeiNavList">
<?php
$link_cats = get_terms('link_category', array('hide_empty' => true));
if (!empty($link_cats) && !is_wp_error($link_cats)):
foreach ($link_cats as $key => $link_cat):
$active = $key == 0 ? 'active' : '';
echo '<li class="tengfei-nav-item">';
echo '<a href="#tengfei-link-' . $link_cat->term_id . '" class="tengfei-nav-link ' . $active . '" data-catid="' . $link_cat->term_id . '">';
echo '<i class="fa fa-folder"></i> ' . $link_cat->name;
echo '</a></li>';
endforeach;
else:
echo '<li class="tengfei-nav-item"><span style="padding:0 20px;font-size:13px;color:var(--tengfei-text-secondary);">ھازىرچە تۈرگە ئايرىلغان سانلىق مەلۇمات يوق</span></li>';
endif;
?>
</ul>
<a href="#submit-links-modal" data-toggle="modal" class="tengfei-submit-btn">
<i class="fa fa-plus-circle"></i> ئىلتىماس قىلىش
</a>
</div>
</div>
<!-- 主内容区 -->
<div class="tengfei-content">
<!-- 搜索区域 -->
<div class="tengfei-search-wrap">
<div class="tengfei-search-inner">
<h2 class="tengfei-search-title">دوستلۇق ئۇلانمىسى</h2>
<ul class="search-tmenu">
<li class="active">
<i class="fa fa-search"></i>
<span>ئىزدەش</span>
</li>
<li>
<i class="fa fa-tools"></i>
<span>قۇراللار</span>
</li>
<li>
<i class="fa fa-users"></i>
<span>مەھەللە</span>
</li>
<li>
<i class="fa fa-lightbulb"></i>
<span>ئىلھام</span>
</li>
</ul>
<div class="sousk">
<form id="tengfeiSearchForm" class="shadow b2-radius" action="/?s=" method="get" target="_blank">
<input id="searchinput" class="" type="text" placeholder="تور بىكەت ئىچىدە ئىزدەش" autocomplete="off">
<button id="searc-submit" class="jitheme-site-search" type="submit">
<i class="fa fa-search"></i> ئىزدەش
</button>
</form>
</div>
<div class="subnav">
<div class="subnav-item active">
<ul class="search-bmenu uk-padding-remove">
<li class="search-item on" url="/?s=">تور بىكەت</li>
<li class="search-item" url="https://www.baidu.com/s?wd=">بەيدۇ</li>
<li class="search-item" url="https://www.google.com/search?q=">Google</li>
<li class="search-item" url="https://www.so.com/s?q=">360 ئىزدەش</li>
<li class="search-item" url="https://www.sogou.com/web?query=">سوگو</li>
<li class="search-item" url="https://cn.bing.com/search?q=">Bing ئىزدەش</li>
<li class="search-item" url="https://yz.m.sm.cn/s?q=">مۇقەددەس ئات</li>
</ul>
</div>
<div class="subnav-item">
<ul class="search-bmenu uk-padding-remove">
<li class="search-item on" url="http://rank.chinaz.com/all/">ئېغىرلىقنى تەكشۈرۈش</li>
<li class="search-item" url="http://link.chinaz.com/">دوستلۇق زەنجىرىنى تەكشۈرش</li>
<li class="search-item" url="https://icp.aizhan.com/">ئەنگە ئالدۇرۇشنى تەكشۈرۈش</li>
<li class="search-item" url="http://ping.chinaz.com/">PING تەكشۈرۈش</li>
<li class="search-item" url="http://tool.chinaz.com/Links/?DAddress=">ئۆلۈك زەنجىرنى تەكشۈرۈش</li>
</ul>
</div>
<div class="subnav-item">
<ul class="search-bmenu uk-padding-remove">
<li class="search-item on" url="https://www.zhihu.com/search?type=content&q=">بىلىسىز</li>
<li class="search-item" url="http://weixin.sogou.com/weixin?type=2&query=">ئۈندىدار</li>
<li class="search-item" url="http://s.weibo.com/weibo/">مىكرو بىلوگ</li>
<li class="search-item" url="https://www.douban.com/search?q=">پۇرچاق ياپراقچىسى</li>
</ul>
</div>
<div class="subnav-item">
<ul class="search-bmenu uk-padding-remove">
<li class="search-item on" url="https://huaban.com/search/?q=">گۈل بەرگى</li>
<li class="search-item" url="https://dribbble.com/search/">Dribbble</li>
<li class="search-item" url="https://www.behance.net/search?search=">Behance</li>
<li class="search-item" url="http://www.zcool.com.cn/search/content?&word=">قالتىس بىكەت</li>
</ul>
</div>
</div>
</div>
</div>
<!-- 链接列表 -->
<?php
$link_cats = get_terms('link_category', array('hide_empty' => true));
if (!empty($link_cats) && !is_wp_error($link_cats)):
foreach ($link_cats as $link_cat) :
$bookmarks = get_bookmarks(array('category' => $link_cat->term_id));
if (empty($bookmarks)) continue;
?>
<div class="tengfei-links-section">
<div class="tengfei-links-header">
<!-- 修改分类标题布局 -->
<h3 class="tengfei-links-title" id="tengfei-link-<?php echo $link_cat->term_id ?>">
<span class="tengfei-links-title-text"><?php echo $link_cat->name; ?></span>
<span class="tengfei-links-count">(<?php echo count($bookmarks); ?> دانە)</span>
</h3>
</div>
<div class="tengfei-links-list">
<?php foreach ($bookmarks as $bookmark):
$visit_count = get_link_visit_count($bookmark->link_id);
$heat_stars = get_link_heat_stars($bookmark->link_id);
$link_rating = get_link_rating($bookmark->link_id);
$link_status = check_link_status($bookmark->link_url);
$status_text = '';
$status_class = '';
switch($link_status) {
case 'active':
$status_text = 'ئاكتىپ';
$status_class = 'active';
break;
case 'inactive':
$status_text = 'پاسسىپ';
$status_class = 'inactive';
break;
case 'error':
$status_text = 'خاتا';
$status_class = 'error';
break;
default:
$status_text = 'نامەلۇم';
$status_class = 'unknown';
}
?>
<div class="tengfei-link-card">
<div class="tengfei-link-icon">
<?php if ($bookmark->link_image): ?>
<img src="<?php echo $bookmark->link_image; ?>" alt="<?php echo $bookmark->link_name; ?>" loading="lazy">
<?php else: ?>
<img src="https://www.vxras.com/wp-content/uploads/2024/05/猫爪.png" alt="سۈكۈتتىكى سىنبەلگە" loading="lazy">
<?php endif; ?>
</div>
<div class="tengfei-link-content">
<h4 class="tengfei-link-name">
<?php echo $bookmark->link_name; ?>
<span class="tengfei-link-status <?php echo $status_class; ?>">
<i class="fa fa-circle"></i><?php echo $status_text; ?>
</span>
</h4>
<p class="tengfei-link-desc"><?php echo $bookmark->link_description ?: 'ھازىرچە تور بىكەتنىڭ چۈشەندۈرىلىشى يوق'; ?></p>
<p class="tengfei-link-heat">
<i class="fa fa-eye"></i> زىيارەت مىقدارى:<?php echo $visit_count; ?> قېتىم <?php echo $heat_stars; ?>
</p>
<div class="tengfei-rating-container">
<?php echo $link_rating['stars']; ?>
<span class="tengfei-rating-score"><?php echo $link_rating['average']; ?></span>
<?php if ($link_rating['count'] > 0): ?>
<span class="tengfei-rating-count">(<?php echo $link_rating['count']; ?> ئادەم)</span>
<?php endif; ?>
</div>
</div>
<div class="tengfei-link-actions">
<a href="<?php echo add_query_arg('link_id', $bookmark->link_id, get_permalink($post_id)); ?>" class="tengfei-link-btn tengfei-link-detail">
<i class="fa fa-info-circle"></i> تەپسىلاتى
</a>
<a href="javascript:;" class="tengfei-link-btn tengfei-link-visit" data-linkid="<?php echo $bookmark->link_id; ?>" data-linkurl="<?php echo esc_url($bookmark->link_url); ?>">
<i class="fa fa-external-link-alt"></i> ئېچىش
</a>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
<?php endforeach; else: ?>
<!-- 空状态 -->
<div class="tengfei-empty">
<div class="tengfei-empty-icon">
<i class="fa fa-link-slash"></i>
</div>
<p class="tengfei-empty-text">ھازىرچە ئۇلانما سانلىق مەلۇمات يوق</p>
<?php if (current_user_can('manage_links')): ?>
<a href="<?php echo admin_url('link-manager.php'); ?>" target="_blank" class="tengfei-empty-btn">
<i class="fa fa-plus"></i> ئۇلانما قۇشۇش
</a>
<?php endif; ?>
</div>
<?php endif; ?>
</div>
</div>
<?php else: ?>
<!-- 详情页布局 -->
<div class="tengfei-links-container">
<!-- 左侧导航 -->
<div class="tengfei-nav">
<div class="tengfei-nav-box">
<div class="tengfei-nav-header">
<i class="fa fa-compass"></i>
<span>دوستلۇق ئۇلانمىسى</span>
</div>
<ul class="tengfei-nav-list" id="tengfeiNavList">
<?php
$link_cats = get_terms('link_category', array('hide_empty' => true));
if (!empty($link_cats) && !is_wp_error($link_cats)):
$current_link_cat_ids = wp_get_object_terms($current_link->link_id, 'link_category', array('fields' => 'ids'));
$current_cat_id = !empty($current_link_cat_ids) ? $current_link_cat_ids[0] : 0;
foreach ($link_cats as $key => $link_cat):
$active = $link_cat->term_id == $current_cat_id ? 'active' : '';
echo '<li class="tengfei-nav-item">';
echo '<a href="' . add_query_arg(array('link_id' => null), get_permalink($post_id)) . '#tengfei-link-' . $link_cat->term_id . '" class="tengfei-nav-link ' . $active . '" data-catid="' . $link_cat->term_id . '">';
echo '<i class="fa fa-folder"></i> ' . $link_cat->name;
echo '</a></li>';
endforeach;
else:
echo '<li class="tengfei-nav-item"><span style="padding:0 20px;font-size:13px;color:var(--tengfei-text-secondary);">ھازىرچە تۈرگە ئايرىلغان سانلىق مەلۇمات يوق</span></li>';
endif;
?>
</ul>
<a href="#submit-links-modal" data-toggle="modal" class="tengfei-submit-btn">
<i class="fa fa-plus-circle"></i> ئىلتىماس قىلىش
</a>
</div>
</div>
<!-- 详情内容 -->
<div class="tengfei-content">
<!-- 面包屑导航 -->
<div class="tengfei-breadcrumb">
<a href="<?php echo get_permalink($post_id); ?>">
<i class="fa fa-home"></i> دوستلۇق ئۇلانمىسى
</a>
<span>/</span>
<?php
$link_cats = wp_get_object_terms($current_link->link_id, 'link_category');
if (!empty($link_cats) && !is_wp_error($link_cats)):
$cat = $link_cats[0];
echo '<a href="' . add_query_arg(array('link_id' => null), get_permalink($post_id)) . '#tengfei-link-' . $cat->term_id . '">';
echo '<i class="fa fa-folder"></i> ' . $cat->name;
echo '</a>';
echo '<span>/</span>';
endif;
?>
<span class="current">
<i class="fa fa-info-circle"></i> تور بىكەت ئۇچۇرى
</span>
</div>
<!-- 详情卡片 -->
<div class="tengfei-detail-wrap">
<div class="tengfei-detail-header">
<div class="tengfei-detail-icon">
<?php if ($current_link->link_image): ?>
<img src="<?php echo $current_link->link_image; ?>" alt="<?php echo $current_link->link_name; ?>" loading="lazy">
<?php else: ?>
<img src="https://www.vxras.com/wp-content/uploads/2024/05/猫爪.png" alt="سۈكۈتتىكى سىنبەلگە" loading="lazy">
<?php endif; ?>
</div>
<div class="tengfei-detail-header-content">
<h1 class="tengfei-detail-title">
<?php echo $current_link->link_name; ?>
<?php
$link_status = check_link_status($current_link->link_url);
$status_text = '';
$status_class = '';
switch($link_status) {
case 'active':
$status_text = 'ئاكتىپ';
$status_class = 'active';
break;
case 'inactive':
$status_text = 'پاسسىپ';
$status_class = 'inactive';
break;
case 'error':
$status_text = 'خاتا';
$status_class = 'error';
break;
default:
$status_text = 'نامەلۇم';
$status_class = 'unknown';
}
?>
<span class="tengfei-link-status <?php echo $status_class; ?>">
<i class="fa fa-circle"></i><?php echo $status_text; ?>
</span>
</h1>
<div class="tengfei-detail-header-heat">
<div class="tengfei-detail-heat-count">
<i class="fa fa-eye"></i> زىيارەت مىقدارى:<?php echo get_link_visit_count($current_link->link_id); ?> قېتىم
</div>
<div class="tengfei-detail-heat-stars"><?php echo get_link_heat_stars($current_link->link_id); ?></div>
</div>
<div class="tengfei-detail-url">
<i class="fa fa-link"></i> <?php echo $current_link->link_url; ?>
</div>
<!-- 评分系统 -->
<?php
$link_rating = get_link_rating($current_link->link_id);
if ($link_rating['average'] > 0):
?>
<div class="tengfei-detail-rating">
<div class="tengfei-detail-rating-stars" data-linkid="<?php echo $current_link->link_id; ?>">
<?php echo str_replace('tengfei-rating-stars', 'tengfei-detail-rating-stars', $link_rating['stars']); ?>
</div>
<div class="tengfei-detail-rating-info">
<div class="tengfei-detail-rating-average"><?php echo $link_rating['average']; ?></div>
<div class="tengfei-detail-rating-count"><?php echo $link_rating['count']; ?> ئادەم باھالىدى</div>
</div>
</div>
<?php endif; ?>
</div>
<div class="tengfei-detail-header-actions">
<a href="javascript:;" class="tengfei-link-btn tengfei-link-visit" data-linkid="<?php echo $current_link->link_id; ?>" data-linkurl="<?php echo esc_url($current_link->link_url); ?>">
<i class="fa fa-external-link-alt"></i> ئېچىش
</a>
<a href="<?php echo get_permalink($post_id); ?>#tengfei-link-<?php echo $current_cat_id; ?>" class="tengfei-link-btn tengfei-link-detail">
<i class="fa fa-arrow-left"></i> تىزىملىككە قايتىش
</a>
</div>
</div>
<div class="tengfei-detail-content">
<div class="tengfei-detail-section">
<!-- 修改详情页分类标题布局 -->
<h3 class="tengfei-detail-section-title">بىكەت چۈشەندۈرىلىشى</h3>
<p class="tengfei-detail-desc">
<?php echo !empty($current_link->link_description) ? nl2br($current_link->link_description) : 'ھازىرچە تور بىكەت چۈشەندۈرىلىش ئۇچۇرى يوق'; ?>
</p>
</div>
<div class="tengfei-detail-section">
<h3 class="tengfei-detail-section-title">بىكەت ئۇچۇرى</h3>
<div class="tengfei-detail-meta">
<div class="tengfei-detail-meta-item">
<span class="tengfei-detail-meta-label">تەۋە تۈرى:</span>
<span>
<?php
if (!empty($link_cats) && !is_wp_error($link_cats)):
echo '<i class="fa fa-folder"></i> ' . $cat->name;
else:
echo 'تۈرى يوق';
endif;
?>
</span>
</div>
<div class="tengfei-detail-meta-item">
<span class="tengfei-detail-meta-label">ئومۇمىي زىيارەت مىقدارى:</span>
<span><i class="fa fa-eye"></i> <?php echo get_link_visit_count($current_link->link_id); ?> قېتىم</span>
</div>
<div class="tengfei-detail-meta-item">
<span class="tengfei-detail-meta-label">ئۇلانما قىزغىنلىق دەرىجىسى:</span>
<span><?php echo get_link_heat_stars($current_link->link_id); ?></span>
</div>
<div class="tengfei-detail-meta-item">
<span class="tengfei-detail-meta-label">باشقىلار باھاسى:</span>
<span><?php echo $link_rating['average']; ?> ئۇلۇغ (<?php echo $link_rating['count']; ?> ئادەم)</span>
</div>
<div class="tengfei-detail-meta-item">
<span class="tengfei-detail-meta-label">تور ھالىتى:</span>
<span>
<?php if ($link_status == 'active'): ?>
<i class="fa fa-check-circle text-success"></i> نورمال
<?php elseif ($link_status == 'inactive'): ?>
<i class="fa fa-exclamation-circle text-warning"></i> پاسسىپ
<?php elseif ($link_status == 'error'): ?>
<i class="fa fa-times-circle text-danger"></i> خاتا
<?php else: ?>
<i class="fa fa-question-circle text-secondary"></i> نامەلۇم
<?php endif; ?>
</span>
</div>
<div class="tengfei-detail-meta-item">
<span class="tengfei-detail-meta-label">ئۇلانما تىپى:</span>
<span><?php echo $current_link->link_rel ? $current_link->link_rel : 'ئادەتىكى ئۇلانما'; ?></span>
</div>
<div class="tengfei-detail-meta-item">
<span class="tengfei-detail-meta-label">ئۇلانما ھالىتى:</span>
<span>
<?php if ($current_link->link_visible == 'Y'): ?>
<i class="fa fa-eye text-success"></i> كۆرسىتىلدى
<?php else: ?>
<i class="fa fa-eye-slash text-secondary"></i> كۆرسىتىلمىگەن
<?php endif; ?>
</span>
</div>
</div>
</div>
<!-- 分享功能 -->
<div class="tengfei-detail-section">
<h3 class="tengfei-detail-section-title">ئورتاقلىشىش</h3>
<div class="tengfei-share-container">
<div class="tengfei-share-label">
<i class="fa fa-share-alt"></i> بۇ تور بىكەتنى دوستلىرىڭىز بىلەن ئورتاقلىشىڭ:
</div>
<div class="tengfei-share-buttons">
<?php
$share_title = urlencode($current_link->link_name);
$share_url = urlencode(add_query_arg('link_id', $current_link->link_id, get_permalink($post_id)));
$share_desc = urlencode(strip_tags($current_link->link_description));
$share_image = urlencode($current_link->link_image ?: 'https://www.vxras.com/wp-content/uploads/2024/05/猫爪.png');
?>
<a href="https://service.weibo.com/share/share.php?url=<?php echo $share_url; ?>&title=<?php echo $share_title; ?>&pic=<?php echo $share_image; ?>" target="_blank" class="tengfei-share-btn tengfei-share-weibo">
<i class="fab fa-weibo"></i> مىكرو بىلوگ
</a>
<button class="tengfei-share-btn tengfei-share-wechat" data-share-url="<?php echo add_query_arg('link_id', $current_link->link_id, get_permalink($post_id)); ?>">
<i class="fab fa-weixin"></i> ئۈندىدار
</button>
<a href="https://connect.qq.com/widget/shareqq/index.html?url=<?php echo $share_url; ?>&title=<?php echo $share_title; ?>&summary=<?php echo $share_desc; ?>&pics=<?php echo $share_image; ?>" target="_blank" class="tengfei-share-btn tengfei-share-qq">
<i class="fab fa-qq"></i> QQ
</a>
<a href="https://twitter.com/intent/tweet?url=<?php echo $share_url; ?>&text=<?php echo $share_title; ?>" target="_blank" class="tengfei-share-btn tengfei-share-twitter">
<i class="fab fa-twitter"></i> Twitter
</a>
<a href="https://www.facebook.com/sharer/sharer.php?u=<?php echo $share_url; ?>" target="_blank" class="tengfei-share-btn tengfei-share-facebook">
<i class="fab fa-facebook-f"></i> Facebook
</a>
<button class="tengfei-share-btn tengfei-share-copy" data-copy-text="<?php echo add_query_arg('link_id', $current_link->link_id, get_permalink($post_id)); ?>">
<i class="fa fa-copy"></i> ئۇلىنىش كۆچۈرۈش
</button>
</div>
</div>
</div>
</div>
<button onclick="window.history.back()" class="tengfei-back-list">
<i class="fa fa-arrow-left"></i>
<span>قايتىش</span>
</button>
</div>
</div>
</div>
<?php endif; ?>
</div>
</div>
</div>
<!-- 微信分享二维码模态框 -->
<div id="tengfeiWechatModal" class="tengfei-wechat-modal">
<div class="tengfei-wechat-modal-content">
<div class="tengfei-wechat-modal-title">
<i class="fab fa-weixin"></i> ئۈندىدار ئورتاقلىشىش
</div>
<div class="tengfei-wechat-qrcode" id="tengfeiWechatQrcode"></div>
<p style="font-size: 13px; color: #666; margin: 10px 0;">ئۈندىدار ئېنىقلىما قىلىپ، تامغا سىكانىرلاش ئارقىلىق ئورتاقلاشقىلى بولىدۇ</p>
<button class="tengfei-wechat-modal-close" id="tengfeiWechatModalClose">تاقاش</button>
</div>
</div>
<!-- 复制成功提示 -->
<div id="tengfeiCopyNotification" class="tengfei-copy-notification">
<i class="fa fa-check-circle"></i>
<span>ئۇلىنىش مۇۋەپپەقىيەتلىك كۆچۈرۈلدى</span>
</div>
<!-- 返回顶部按钮 -->
<button class="tengfei-backtop" id="tengfeiBacktop" aria-label="يۇقىرىغا قايتىش">
<i class="fa fa-chevron-up"></i>
</button>
<script src="https://cdn.jsdelivr.net/npm/qrcode@1.5.3/build/qrcode.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
// 搜索功能
<?php if (!$is_link_detail): ?>
const searchTmenu = document.querySelectorAll('.search-tmenu li');
const subnavItems = document.querySelectorAll('.subnav-item');
const sceneData = [
{ placeholder: 'تور بىكەت ئىچىدە ئىزدەش', defaultUrl: '/?s=' },
{ placeholder: 'ئېغىرلىقنى تەكشۈرۈش (http:// ياكى https:// سىز ئەمەس)', defaultUrl: 'http://rank.chinaz.com/all/' },
{ placeholder: 'بىلىسىزدە ئىزدەش', defaultUrl: 'https://www.zhihu.com/search?type=content&q=' },
{ placeholder: 'گۈل بەرگىدە ئىزدەش', defaultUrl: 'https://huaban.com/search/?q=' }
];
searchTmenu.forEach((item, index) => {
item.addEventListener('click', function() {
searchTmenu.forEach(li => li.classList.remove('active'));
this.classList.add('active');
subnavItems.forEach(sub => sub.classList.remove('active'));
subnavItems[index].classList.add('active');
const defaultUrl = sceneData[index].defaultUrl;
const placeholder = sceneData[index].placeholder;
document.getElementById('tengfeiSearchForm').action = defaultUrl;
document.getElementById('searchinput').placeholder = placeholder;
const currentSubItems = subnavItems[index].querySelectorAll('.search-item');
currentSubItems.forEach(li => li.classList.remove('on'));
currentSubItems[0].classList.add('on');
});
});
const allSearchItems = document.querySelectorAll('.search-item');
allSearchItems.forEach(item => {
item.addEventListener('click', function() {
const parentList = this.parentElement;
parentList.querySelectorAll('.search-item').forEach(li => li.classList.remove('on'));
this.classList.add('on');
const url = this.getAttribute('url');
const placeholder = this.textContent;
document.getElementById('tengfeiSearchForm').action = url;
document.getElementById('searchinput').placeholder = placeholder + ' ئىزدەش';
});
});
const searchForm = document.getElementById('tengfeiSearchForm');
const searchInput = document.getElementById('searchinput');
const searchBtn = document.getElementById('searc-submit');
// 修复搜索表单提交
searchForm.addEventListener('submit', function(e) {
e.preventDefault();
const val = searchInput.value.trim();
if (val) {
const actionUrl = this.getAttribute('action');
const targetUrl = actionUrl + encodeURIComponent(val);
window.open(targetUrl, '_blank');
} else {
alert('ئىزدەش مەزمۇنىنى كىرگۈزۈڭ');
}
});
// 修复搜索按钮点击
searchBtn.addEventListener('click', function(e) {
e.preventDefault();
const val = searchInput.value.trim();
if (val) {
const actionUrl = searchForm.getAttribute('action');
const targetUrl = actionUrl + encodeURIComponent(val);
window.open(targetUrl, '_blank');
} else {
alert('ئىزدەش مەزمۇنىنى كىرگۈزۈڭ');
}
});
// 修复回车键搜索
searchInput.addEventListener('keydown', function(e) {
if (e.key === 'Enter') {
e.preventDefault();
const val = this.value.trim();
if (val) {
const actionUrl = searchForm.getAttribute('action');
const targetUrl = actionUrl + encodeURIComponent(val);
window.open(targetUrl, '_blank');
} else {
alert('ئىزدەش مەزمۇنىنى كىرگۈزۈڭ');
}
}
});
// 移动端搜索优化 - 添加触摸支持
if ('ontouchstart' in window) {
searchTmenu.forEach(item => {
item.addEventListener('touchstart', function() {
this.style.transform = 'scale(0.98)';
});
item.addEventListener('touchend', function() {
this.style.transform = '';
});
});
allSearchItems.forEach(item => {
item.addEventListener('touchstart', function() {
this.style.transform = 'scale(0.98)';
});
item.addEventListener('touchend', function() {
this.style.transform = '';
});
});
}
<?php endif; ?>
// 导航激活状态
const navLinks = document.querySelectorAll('.tengfei-nav-link, .tengfei-mobile-nav-link');
navLinks.forEach(link => {
link.addEventListener('click', function(e) {
// 阻止默认的锚点跳转
e.preventDefault();
const href = this.getAttribute('href');
const targetId = href.split('#')[1];
if (targetId) {
const targetElement = document.getElementById(targetId);
if (targetElement) {
const offset = 70;
const targetPosition = targetElement.offsetTop - offset;
// 平滑滚动到目标
window.scrollTo({
top: targetPosition,
behavior: 'smooth'
});
// 更新导航激活状态
navLinks.forEach(l => l.classList.remove('active'));
this.classList.add('active');
}
}
});
});
// 移动端导航切换
const mobileNavToggle = document.getElementById('tengfeiMobileNavToggle');
const mobileNavList = document.getElementById('tengfeiMobileNavList');
if (mobileNavToggle && mobileNavList) {
const mobileNavIcon = mobileNavToggle.querySelector('i');
mobileNavToggle.addEventListener('click', function() {
mobileNavList.classList.toggle('show');
mobileNavIcon.classList.toggle('fa-chevron-down');
mobileNavIcon.classList.toggle('fa-chevron-up');
});
document.querySelectorAll('.tengfei-mobile-nav-link').forEach(link => {
link.addEventListener('click', function() {
mobileNavList.classList.remove('show');
mobileNavIcon.classList.add('fa-chevron-down');
mobileNavIcon.classList.remove('fa-chevron-up');
});
});
}
// 滚动监听 - 修复导航激活状态
<?php if (!$is_link_detail): ?>
const sections = document.querySelectorAll('.tengfei-links-title');
function updateNavOnScroll() {
const scrollTop = window.scrollY + 80;
let currentSection = null;
sections.forEach(section => {
const sectionTop = section.offsetTop;
const sectionHeight = section.parentElement.offsetHeight;
if (scrollTop >= sectionTop && scrollTop < sectionTop + sectionHeight) {
currentSection = section;
}
});
if (currentSection) {
const catId = currentSection.id.replace('tengfei-link-', '');
navLinks.forEach(link => {
link.classList.remove('active');
if (link.getAttribute('data-catid') === catId) {
link.classList.add('active');
}
});
}
}
window.addEventListener('scroll', updateNavOnScroll);
// 初始更新
setTimeout(updateNavOnScroll, 100);
<?php endif; ?>
// 返回顶部按钮
const backtop = document.getElementById('tengfeiBacktop');
function toggleBacktop() {
if (window.scrollY > 400) {
backtop.classList.add('show');
} else {
backtop.classList.remove('show');
}
}
window.addEventListener('scroll', toggleBacktop);
toggleBacktop(); // 初始化
if (backtop) {
backtop.addEventListener('click', function() {
window.scrollTo({
top: 0,
behavior: 'smooth'
});
});
}
// 直达按钮点击处理
const visitNonce = '<?php echo $visit_nonce; ?>';
const ajaxUrl = '<?php echo admin_url('admin-ajax.php'); ?>';
function handleVisitClick(e) {
e.preventDefault();
e.stopPropagation();
const linkId = this.getAttribute('data-linkid');
const linkUrl = this.getAttribute('data-linkurl');
const btn = this;
if (!linkUrl) return;
// 添加加载状态
const originalHTML = btn.innerHTML;
btn.innerHTML = '<i class="fa fa-spinner fa-spin"></i> يۈكلىنىۋاتىدۇ...';
btn.classList.add('loading');
btn.disabled = true;
// AJAX 请求更新访问计数
const formData = new FormData();
formData.append('action', 'update_link_visit_count');
formData.append('link_id', linkId);
formData.append('nonce', visitNonce);
fetch(ajaxUrl, {
method: 'POST',
body: formData,
credentials: 'same-origin'
})
.then(response => response.json())
.then(data => {
// 无论AJAX成功与否,都跳转到目标网站
window.open(linkUrl, '_blank');
})
.catch(error => {
console.error('Error:', error);
window.open(linkUrl, '_blank');
})
.finally(() => {
// 恢复按钮状态
setTimeout(() => {
btn.innerHTML = originalHTML;
btn.classList.remove('loading');
btn.disabled = false;
}, 1500);
});
}
// 为所有直达按钮绑定事件
const visitBtns = document.querySelectorAll('.tengfei-link-visit[data-linkid]');
visitBtns.forEach(btn => {
btn.addEventListener('click', handleVisitClick);
// 移动端触摸优化
if ('ontouchstart' in window) {
btn.addEventListener('touchstart', function() {
this.style.transform = 'scale(0.98)';
});
btn.addEventListener('touchend', function() {
this.style.transform = '';
});
}
});
// 图片懒加载
if ('IntersectionObserver' in window) {
const imageObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const img = entry.target;
if (img.dataset.src) {
img.src = img.dataset.src;
}
imageObserver.unobserve(img);
}
});
});
document.querySelectorAll('img[data-src]').forEach(img => {
imageObserver.observe(img);
});
}
// 修复移动端导航点击后自动关闭
document.querySelectorAll('.tengfei-mobile-nav-link').forEach(link => {
link.addEventListener('click', function() {
const mobileNavToggle = document.getElementById('tengfeiMobileNavToggle');
const mobileNavList = document.getElementById('tengfeiMobileNavList');
if (mobileNavToggle && mobileNavList) {
const mobileNavIcon = mobileNavToggle.querySelector('i');
mobileNavList.classList.remove('show');
mobileNavIcon.classList.add('fa-chevron-down');
mobileNavIcon.classList.remove('fa-chevron-up');
}
});
});
// 移动端滚动优化
if ('ontouchstart' in window) {
// 禁用双击缩放
let lastTouchEnd = 0;
document.addEventListener('touchend', function(event) {
const now = (new Date()).getTime();
if (now - lastTouchEnd <= 300) {
event.preventDefault();
}
lastTouchEnd = now;
}, false);
// 优化滚动性能
document.addEventListener('touchmove', function(e) {
if (e.scale !== 1) {
e.preventDefault();
}
}, { passive: false });
}
// ==================== 新增功能 ====================
// 1. 评分系统
const ratingNonce = '<?php echo $rating_nonce; ?>';
function handleRatingClick(e) {
e.preventDefault();
e.stopPropagation();
const star = e.target;
if (!star.classList.contains('rating-star')) return;
const starsContainer = star.closest('.tengfei-rating-stars, .tengfei-detail-rating-stars');
const linkId = starsContainer.getAttribute('data-linkid');
const ratingValue = star.getAttribute('data-rating');
if (!linkId || !ratingValue) return;
// 检查是否已经评分
const ratedCookie = getCookie('rated_link_' + linkId);
if (ratedCookie) {
alert('سىز بۇ تور بىكەتنى باھالىغانسىز. باشقا بىر تور بىكەتنى باھالىڭ.');
return;
}
// 添加加载状态
const originalStars = starsContainer.innerHTML;
starsContainer.innerHTML = '<i class="fa fa-spinner fa-spin"></i> باھا يوللىنىۋاتىدۇ...';
// AJAX 请求更新评分
const formData = new FormData();
formData.append('action', 'update_link_rating');
formData.append('link_id', linkId);
formData.append('rating', ratingValue);
formData.append('nonce', ratingNonce);
fetch(ajaxUrl, {
method: 'POST',
body: formData,
credentials: 'same-origin'
})
.then(response => response.json())
.then(data => {
if (data.success) {
// 更新星星显示
const starsHtml = generateStarsHtml(data.data.average_rating);
starsContainer.innerHTML = starsHtml;
// 更新评分信息
const ratingScore = starsContainer.nextElementSibling;
if (ratingScore && ratingScore.classList.contains('tengfei-rating-score')) {
ratingScore.textContent = data.data.average_rating;
}
const ratingCount = ratingScore ? ratingScore.nextElementSibling : null;
if (ratingCount && ratingCount.classList.contains('tengfei-rating-count')) {
ratingCount.textContent = '(' + data.data.rating_count + ' ئادەم)';
}
// 在详情页更新评分显示
const detailRatingAverage = document.querySelector('.tengfei-detail-rating-average');
const detailRatingCount = document.querySelector('.tengfei-detail-rating-count');
if (detailRatingAverage) {
detailRatingAverage.textContent = data.data.average_rating;
}
if (detailRatingCount) {
detailRatingCount.textContent = data.data.rating_count + ' ئادەم باھالىدى';
}
// 设置cookie,防止重复评分
setCookie('rated_link_' + linkId, 'true', 365);
// 显示成功消息
showNotification('مۇۋەپپەقىيەتلىك باھالىدىڭىز. رەھمەت!', 'success');
} else {
starsContainer.innerHTML = originalStars;
alert('باھالىغاندا خاتا يۈز بەردى: ' + (data.data || 'نامەلۇم خاتا'));
}
})
.catch(error => {
console.error('Error:', error);
starsContainer.innerHTML = originalStars;
alert('تور باغلىنىشى مەسىلىسى');
});
}
function generateStarsHtml(rating) {
let starsHtml = '';
for (let i = 1; i <= 5; i++) {
if (i <= Math.floor(rating)) {
starsHtml += '<i class="fa fa-star rating-star" data-rating="' + i + '" style="color:#ffc107;"></i>';
} else if (i == Math.ceil(rating) && (rating % 1) >= 0.5) {
starsHtml += '<i class="fa fa-star-half-alt rating-star" data-rating="' + i + '" style="color:#ffc107;"></i>';
} else {
starsHtml += '<i class="fa fa-star-o rating-star" data-rating="' + i + '" style="color:#ddd;"></i>';
}
}
return starsHtml;
}
// 绑定评分事件
document.addEventListener('click', function(e) {
if (e.target.classList.contains('rating-star')) {
handleRatingClick(e);
}
});
// Cookie 操作函数
function setCookie(name, value, days) {
const expires = new Date();
expires.setTime(expires.getTime() + (days * 24 * 60 * 60 * 1000));
document.cookie = name + '=' + value + ';expires=' + expires.toUTCString() + ';path=/';
}
function getCookie(name) {
const nameEQ = name + '=';
const ca = document.cookie.split(';');
for (let i = 0; i < ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
// 2. 分享功能
const wechatModal = document.getElementById('tengfeiWechatModal');
const wechatQrcode = document.getElementById('tengfeiWechatQrcode');
const wechatModalClose = document.getElementById('tengfeiWechatModalClose');
const copyNotification = document.getElementById('tengfeiCopyNotification');
// 微信分享
document.addEventListener('click', function(e) {
if (e.target.closest('.tengfei-share-wechat')) {
const shareBtn = e.target.closest('.tengfei-share-wechat');
const shareUrl = shareBtn.getAttribute('data-share-url');
// 生成二维码
if (wechatQrcode) {
wechatQrcode.innerHTML = '';
QRCode.toCanvas(wechatQrcode, shareUrl, {
width: 200,
height: 200,
margin: 1,
color: {
dark: '#000000',
light: '#ffffff'
}
});
}
// 显示模态框
if (wechatModal) {
wechatModal.style.display = 'flex';
}
}
});
// 关闭微信分享模态框
if (wechatModalClose) {
wechatModalClose.addEventListener('click', function() {
wechatModal.style.display = 'none';
});
}
// 点击模态框外部关闭
if (wechatModal) {
wechatModal.addEventListener('click', function(e) {
if (e.target === wechatModal) {
wechatModal.style.display = 'none';
}
});
}
// 复制链接功能
document.addEventListener('click', function(e) {
if (e.target.closest('.tengfei-share-copy')) {
const copyBtn = e.target.closest('.tengfei-share-copy');
const textToCopy = copyBtn.getAttribute('data-copy-text');
// 使用 Clipboard API
if (navigator.clipboard) {
navigator.clipboard.writeText(textToCopy)
.then(() => {
// 显示成功提示
showCopyNotification();
// 改变按钮状态
copyBtn.innerHTML = '<i class="fa fa-check"></i> كۆچۈرۈلدى';
copyBtn.classList.add('tengfei-share-copied');
// 3秒后恢复原状
setTimeout(() => {
copyBtn.innerHTML = '<i class="fa fa-copy"></i> ئۇلىنىش كۆچۈرۈش';
copyBtn.classList.remove('tengfei-share-copied');
}, 3000);
})
.catch(err => {
console.error('复制失败:', err);
// 备用方案:使用textarea
fallbackCopyText(textToCopy);
});
} else {
// 使用备用方案
fallbackCopyText(textToCopy);
}
}
});
function fallbackCopyText(text) {
const textArea = document.createElement('textarea');
textArea.value = text;
textArea.style.position = 'fixed';
textArea.style.left = '-999999px';
textArea.style.top = '-999999px';
document.body.appendChild(textArea);
textArea.focus();
textArea.select();
try {
const successful = document.execCommand('copy');
if (successful) {
showCopyNotification();
} else {
alert('كۆچۈرۈش مەغلۇب بولدى. قولدا كۆچۈرۈڭ: ' + text);
}
} catch (err) {
console.error('复制失败:', err);
alert('كۆچۈرۈش مەغلۇب بولدى. قولدا كۆچۈرۈڭ: ' + text);
}
document.body.removeChild(textArea);
}
function showCopyNotification() {
if (copyNotification) {
copyNotification.classList.add('show');
setTimeout(() => {
copyNotification.classList.remove('show');
}, 3000);
}
}
// 通用通知函数
function showNotification(message, type = 'success') {
// 创建通知元素
const notification = document.createElement('div');
notification.className = 'tengfei-copy-notification';
notification.style.background = type === 'success' ? '#4caf50' : '#f44336';
notification.innerHTML = `
<i class="fa fa-${type === 'success' ? 'check' : 'exclamation'}-circle"></i>
<span>${message}</span>
`;
document.body.appendChild(notification);
// 显示通知
setTimeout(() => {
notification.classList.add('show');
}, 10);
// 3秒后隐藏并移除
setTimeout(() => {
notification.classList.remove('show');
setTimeout(() => {
if (notification.parentNode) {
notification.parentNode.removeChild(notification);
}
}, 400);
}, 3000);
}
// 3. 链接状态检查(定期更新)
function updateLinkStatuses() {
// 这里可以添加定期检查链接状态的逻辑
// 例如:每30分钟检查一次活跃链接
setInterval(() => {
// 在实际应用中,这里应该通过AJAX请求服务器端检查链接状态
// 然后更新页面上的状态指示器
}, 30 * 60 * 1000);
}
// 页面加载后开始更新状态
setTimeout(updateLinkStatuses, 5000);
});
</script>
</body>
<?php
// 提交链接模态框
if (function_exists('zib_submit_links_modal')) {
$submit_args = array(
'title' => zib_get_post_meta($post_id, 'page_links_submit_title', true) ?: 'ئىلتىماس قىلىش',
'dec' => zib_get_post_meta($post_id, 'page_links_submit_dec', true) ?: '<div class="tengfei-modal-content">
<h4><i class="fa fa-info-circle"></i> ئىلتىماس شەرتلىرى:</h4>
<ul>
<li><i class="fa fa-check-circle text-success"></i> توربىكتىڭىز نورمال مىڭىۋاتقان بولىشى ، يوللانغان مەزمۇنلار كۆپ بولىشى ۋە قۇرۇلغىنىغا بىرە مەزگىل بولغان بولىشى كىرەك</li>
<li><i class="fa fa-check-circle text-success"></i> ئۆز خاسلىقى بار ، كۆپىنچە مەزمۇنلىرى ئۆزىنىڭ ئىجادىي مەزمۇنلىرى بولغان بىكەتلەر ئالدىن قوبۇل قىلنىدۇ</li>
<li><i class="fa fa-times-circle text-danger"></i> ئەكسىيەتچى، شەھۋانىي، قىمار قاتارلىق ناچار مەزمۇنلار ياكى ناچار مەزمۇنلار بىلەن ئۇلانغان تور بېكەتلىرى كىرگۈزۈلمەيدۇ</li>
<li><i class="fa fa-check-circle text-success"></i> سىزمۇ بىكتىمىز ئۇچۇرىنى ئۆز بىكتىڭىزدە ئۇلانما قىلشىڭىز زۆرۈردۇر</li>
<li><i class="fa fa-check-circle text-success"></i> كۋادرات شەكىللىك LOGO سۈرىتىنى تاللاڭ</li>
</ul>
</div>',
'sign' => zib_get_post_meta($post_id, 'page_links_submit_sign_s', true) ?: true,
'cats' => zib_get_post_meta($post_id, 'page_links_submit_cats', true) ?: array(),
);
echo zib_submit_links_modal($submit_args);
}
// 添加AJAX处理函数
add_action('wp_ajax_update_link_rating', 'handle_update_link_rating');
add_action('wp_ajax_nopriv_update_link_rating', 'handle_update_link_rating');
function handle_update_link_rating() {
// 验证nonce
if (!wp_verify_nonce($_POST['nonce'], 'update_link_rating')) {
wp_send_json_error('Nonce验证失败');
wp_die();
}
$link_id = intval($_POST['link_id']);
$rating = intval($_POST['rating']);
if ($link_id <= 0 || $rating < 1 || $rating > 5) {
wp_send_json_error('参数无效');
wp_die();
}
// 获取当前评分数据
$current_rating = get_post_meta($link_id, 'link_rating', true);
$current_count = get_post_meta($link_id, 'link_rating_count', true);
// 更新评分数据
$new_rating = floatval($current_rating) + $rating;
$new_count = intval($current_count) + 1;
update_post_meta($link_id, 'link_rating', $new_rating);
update_post_meta($link_id, 'link_rating_count', $new_count);
// 计算平均分
$average_rating = round($new_rating / $new_count, 1);
wp_send_json_success(array(
'average_rating' => $average_rating,
'rating_count' => $new_count
));
wp_die();
}
get_footer();
?>
زىبىل ئۇيغۇرچە نەشىرى
ئەڭ گۈزەل wordpress تور بەت قۇرۇش ئۇسلۇبى ھەقسىز …
© نەشىر ھوقوقى
بايانات
لوففېر تورىنى ئىشلىتىشتە بىلىشكە تېگىشلىك ئىشلار
- 1بۇ تور بېكىتىنىڭ مەزمۇنى پەقەت شەخسلەرنىڭ ئۆگىنىشى ، تەتقىق قىلىشى ۋە ھۇزۇرلىنىشىغا تەمىنلىنىدۇ ، ھوقۇق بېرىلمىگەن ئەھۋالدا ھەر قانداق سودىغا ئىشلىتىش چەكلىنىدۇ 。
- 2تور بېكەتتىكى كود ئۈلگىسى پەقەت مائارىپ مەقسىتىگىلا ئىشلىتىلىدۇ ، ئىشلەتكەندە مۇناسىۋەتلىك ئوچۇق كودلۇق كېلىشىم ۋە ھوقۇق بېرىش بەلگىلىمىسىگە ئەمەل قىلىڭ 。
- 3كۆچۈرۈپ تارقاتقان ياكى نەقىل كەلتۈرگەن مەزمۇنلاردىن ئەسلى مەنبەنى ئەسكەرتىپ قويۇڭ ، ئەسلى نۇسخىسىغا ھۆرمەت قىلىپ ، ياخشى ئىجادىيەت مۇھىتىنى بىرلىكتە قوغدايلى 。
- 4تور بېكەت ئىنكاس رايونى ئاقىلانە مۇزاكىرە قىلىشنى قارشى ئالىدۇ ، قانۇن - نىزاملارغا خىلاپ سۆزلەرنى قىلماڭ ، ئىناق مەھەللە بەرپا قىلىڭ 。
- 5ئەگەر مەزمۇن ھوقوقىڭىزغا دەخلى تەرۇز قىلغان بولساق ، بىكەت باشلىقى بىلەن ئالاقىلىشىڭ ، دەرھال ئۈچۈرۋېتىمىز ! قىلىدۇ 。
- 6مەزكۇر پونكىت بايلىقىنى ئىشلەتكەندە پەيدا بولغان ھەرقانداق مەسىلە ۋە ئاقىۋەتنى ئۆزى ئۈستىگە ئېلىشى ، ئېھتىيات بىلەن مەشغۇلات قىلىش كېرەك 。
THE END












ھازىرچا ئىنكاس يوق