Есть ли способ изменить шаблон, чтобы изображение вело не на адрес источника, а на страницу сведений?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Есть ли способ изменить шаблон, чтобы изображение вело не на адрес источника, а на страницу сведений?

Сообщение Anonymous »

Я столкнулся с очень сложной проблемой: раньше я купил шаблон, а теперь хочу внести больше индивидуальных настроек, но я начинающий программист, и мне нужно искать ответы у серьёзных специалистов! >
По умолчанию шаблон указывает ссылку изображения на странице изображения на исходный адрес, но я хочу указать изображение на страницу сведений; Я написал код с помощью ИИ, но он не работает, когда он загружает страницу в первый раз, но после перестановки все в порядке, есть ли способ сделать так, чтобы он указывал на страницу с подробностями в первый раз, когда он заходит на страницу? Код следующий:
В настоящее время не работает тестовая веб-страница: https://test.keran.com.tw/index.php/work/

Код: Выделить всё

function keran_custom_script() {
if (is_admin() || !is_page(2717)) {
return; // 如果是后台或者不是页面 ID 为 2717,则不执行下面的脚本
}
?>

const updateImageLinks = () => {
const workItems = document.querySelectorAll('.qrt-work-item');
workItems.forEach(item => {
const link = item.querySelector('.qrt-work-descr a');
const imageLink = item.querySelector('.qrt-work-cover-frame');
if (link && imageLink) {
imageLink.setAttribute('href', link.getAttribute('href') || '#');
}
});
};

// 页面完全加载后执行
window.addEventListener('load', updateImageLinks);

// AJAX完成后的处理
if (window.jQuery) {
jQuery(document).ajaxComplete(updateImageLinks);
}

// 使用MutationObserver监听DOM变化
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
if (mutation.addedNodes.length > 0) {
updateImageLinks();
}
});
});

observer.observe(document.body, { childList: true, subtree: true });

// 监听滚动事件,但要防止过度执行
let scrollTimeout;
window.addEventListener('scroll', () => {
clearTimeout(scrollTimeout);
scrollTimeout = setTimeout(updateImageLinks, 300);
});

// 页面变得可见时执行
document.addEventListener('visibilitychange', () => {
if (document.visibilityState === 'visible') {
updateImageLinks();
}
});

// 确保所有图片加载完成之后才更新链接
const executeWhenImagesLoaded = (callback) => {
const images = document.images;
let loadedImagesCount = 0;
Array.from(images).forEach((img) => {
if(img.complete) {
loadedImagesCount++;
} else {
img.addEventListener('load', () => {
loadedImagesCount++;
if (loadedImagesCount === images.length) {
callback();
}
});
img.addEventListener('error', () => {
loadedImagesCount++;
if (loadedImagesCount === images.length) {
callback();
}
});
}
});

// If all images are loaded from cache
if(loadedImagesCount === images.length) {
callback();
}
};

// Call executeWhenImagesLoaded during window load
window.addEventListener('load', () => {
executeWhenImagesLoaded(updateImageLinks);
});



Подробнее здесь: [url]https://stackoverflow.com/questions/78413424/is-there-any-way-to-change-the-template-so-that-the-image-doesnt-lead-to-the-so[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»