feat: make site navigation and pages configurable

This commit is contained in:
OldTaoge
2026-08-26 09:16:05 +08:00
parent aea6095c0a
commit 0c6e5d6960
5 changed files with 21 additions and 35 deletions
@@ -818,24 +818,15 @@
stop(); stop();
resizeCanvas(); resizeCanvas();
startAt = performance.now(); startAt = performance.now();
if (reducedMotionQuery.matches) {
drawStatic();
return;
}
rafId = requestAnimationFrame(render); rafId = requestAnimationFrame(render);
}; };
const onResize = () => { const onResize = () => {
resizeCanvas(); resizeCanvas();
if (reducedMotionQuery.matches) {
drawStatic();
}
}; };
const themeObserver = new MutationObserver(() => { const themeObserver = new MutationObserver(() => {
if (reducedMotionQuery.matches) { if (!rafId) render(performance.now());
drawStatic();
}
}); });
themeObserver.observe(document.documentElement, { themeObserver.observe(document.documentElement, {
+1 -1
View File
@@ -111,7 +111,7 @@ function itstudio_enqueue_scripts() {
// 仅在首页加载首页样式 // 仅在首页加载首页样式
if (is_front_page() || is_home()) { if (is_front_page() || is_home()) {
wp_enqueue_style('itstudio-front-page', get_template_directory_uri() . '/assets/css/front-page.css', array('itstudio-style'), '2.1.2'); wp_enqueue_style('itstudio-front-page', get_template_directory_uri() . '/assets/css/front-page.css', array('itstudio-style'), '2.1.2');
wp_enqueue_script('itstudio-landing-hero-canvas', get_template_directory_uri() . '/assets/js/landing-hero-canvas.js', array(), '1.0.0', true); wp_enqueue_script('itstudio-landing-hero-canvas', get_template_directory_uri() . '/assets/js/landing-hero-canvas.js', array(), '1.0.1', true);
} }
// 仅在工作室介绍页加载(包含 /about fallback) // 仅在工作室介绍页加载(包含 /about fallback)
+7 -24
View File
@@ -75,32 +75,15 @@
<span></span> <span></span>
</button> </button>
<?php <?php
$announcement_nav_url = get_post_type_archive_link('announcement'); wp_nav_menu(array(
if (!$announcement_nav_url) { 'theme_location' => 'primary',
$announcement_nav_url = home_url('/announcements'); 'container' => false,
} 'menu_class' => 'nav-menu',
$news_nav_url = get_post_type_archive_link('news'); 'fallback_cb' => false,
if (!$news_nav_url) { 'depth' => 1,
$news_nav_url = home_url('/news'); ));
}
$posts_page_id = (int) get_option('page_for_posts');
$blog_nav_url = $posts_page_id ? get_permalink($posts_page_id) : '';
if (!$blog_nav_url) {
$blog_nav_url = home_url('/blog');
}
$blog_nav_url = 'https://blog.itstudio.club';
?> ?>
<ul class="nav-menu">
<li><a href="<?php echo esc_url(home_url('/')); ?>" data-cn="首页" data-en="Home"></a></li>
<li><a href="<?php echo esc_url($announcement_nav_url); ?>" data-cn="公告通知" data-en="Announcements"></a></li>
<li><a href="<?php echo esc_url($news_nav_url); ?>" data-cn="社团新闻" data-en="News"></a></li>
<li><a href="<?php echo esc_url($blog_nav_url); ?>" target="_blank" rel="noopener noreferrer" data-cn="博客" data-en="Blog"></a></li>
<li><a href="<?php echo esc_url(home_url('/services')); ?>" data-cn="便民服务" data-en="Service"></a></li>
<li><a href="<?php echo esc_url(home_url('/about')); ?>" data-cn="社团介绍" data-en="Introduction"></a></li>
<li><a href="<?php echo esc_url(home_url('/join')); ?>" data-cn="加入我们" data-en="Join"></a></li>
</ul>
<div class="social-links"> <div class="social-links">
<button class="lang-toggle" aria-label="Toggle Language"> <button class="lang-toggle" aria-label="Toggle Language">
<span class="lang-text">EN</span> <span class="lang-text">EN</span>
@@ -0,0 +1,6 @@
<?php
/* Template Name: Announcements Archive */
$GLOBALS['itstudio_archive_mode'] = 'announcement';
require locate_template('archive.php');
unset($GLOBALS['itstudio_archive_mode']);
+6
View File
@@ -0,0 +1,6 @@
<?php
/* Template Name: News Archive */
$GLOBALS['itstudio_archive_mode'] = 'news';
require locate_template('archive.php');
unset($GLOBALS['itstudio_archive_mode']);