wordpress下拉菜单_下拉导航:如何在WordPress上维护选定的选项

wordpress下拉菜单

在上一教程中 ,我们学习了如何使用select元素进行导航并在页面加载时保持选择的选项。 为了演示它,我们使用了一个带有一些静态页面的示例项目。

今天,我们将更进一步,讨论将此功能集成到WordPress网站中所需的操作。

注意 :本教程假定您熟悉WordPress以及构建子主题的过程。

1.创建一个儿童主题

其初始文件结构如下所示:

让我们仔细看一下子主题的内容。

样式表

子主题的样式表(“ style.css”)以以下文件头开头(您可以根据需要对其进行充实,但是出于我们的目的,这是很好的选择):

/*
Theme Name: Twenty Fifteen Child
Description: Twenty Fifteen Child Theme
Author: George Martsoukos
Author URI: https://georgemartsoukos.com
Template: twentyfifteen
Version: 1.0.0
*/

在此文件中,我们将样式定位到将在接下来的部分中添加的select元素。

现在,让我们添加这些样式,其中大多数来自上一教程:

.page-top-header {
  border-left: none;
  margin-bottom: 50px;
}

.myselect {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  width: 100%;
  max-width: 400px;
  padding: 6px 12px;
  border-radius: 4px;
  border: 1px solid #cbd1d8;
  font-size: 2rem;
  line-height: 1.5;
  background: #fff url(assets/img/down.svg) no-repeat center right 12px / 18px 18px;
  transition: all 0.2s ease-in-out;
}

/*IE*/
.myselect::-ms-expand {
  display: none;
}

.myselect:focus {
  outline: 0;
  border-color: #7bbaff;
  box-shadow: 0 0 0 3px rgba(0, 121, 250, 0.3);
}

排队文件

在“ functions.php”文件中,我们加入了父主题主题表和子主题表。 除了这些,我们还加入一个JavaScript文件,该文件将保存我们的JavaScipt代码。

这是必需PHP代码:

<?php
function my_theme_enqueue_scripts() {
  $parent_style = 'twentyfifteen-style';  

  wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
  wp_enqueue_style( 'child-style',
    get_stylesheet_directory_uri() . '/style.css',
    array( $parent_style ),
    wp_get_theme()->get('Version')
  );
  
  wp_enqueue_script( 'main-js', get_stylesheet_directory_uri() . '/assets/js/main.js', array(), false, true );
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_scripts' );
?>

屏幕截图

“ screenshot.png”是主题设计的1200x900px缩略图。

资产

“ assets”文件夹包含我们站点所需的图像和JavaScript文件。 在较大的项目中,它可能还包含其他文件夹,例如“ scss”文件夹。

JavaScript

在“ assets”文件夹中,有一个“ main.js”文件,其中包含每次选择一个选项时应运行的代码。

这是必需的代码:

const select = document.querySelector(".myselect");
const options = document.querySelectorAll(".myselect option");

if (select) {
  // 1st method
  select.addEventListener("change", function() {
    const url = this.options[this.selectedIndex].dataset.url;
    if (url) {
      location.href = url;
    }
  });

  for (const option of options) {
    const url = option.dataset.url;
    if (url === location.href) {
      option.setAttribute("selected", "");
      break;
    }
  }

  // 2nd method
  /*select.addEventListener("change", function() {
    const url = this.options[this.selectedIndex].dataset.url;
    if (url) {
      localStorage.setItem("url", url);
      location.href = url;
    }
  });

  if (localStorage.getItem("url")) {
    for (const option of options) {
      const url = option.dataset.url;
      if (url === localStorage.getItem("url")) {
        option.setAttribute("selected", "");
        break;
      }
    }
  }*/
}

2.激活儿童主题

既然我们熟悉了子主题的内容,就可以激活它了。

3.创建一些帖子和类别

下一步,我们将创建四个不同的帖子类别:

设置好类别后,我们将添加一堆帖子并将它们随机分配给上述类别,如下所示:

现在,我们已经添加了内容,让我们看一看类别(归档)页面的外观。


4.自定义类别页面

在每个类别页面中,我们要添加一个select元素,该元素将保存所有帖子类别。 每次选择一个选项时,都应加载相关类别,并且应将目标选项标记为已选中。 另外,应该显示一个额外的“ All选项,它将加载所有帖子(默认情况下,主页显示所有帖子)。

考虑到这一点,我们首先循环浏览所有帖子类别,并将它们作为选项添加到select元素中。

负责该行为的代码如下:

<?php 
  // get all post categories 
  $cats = get_categories();
  if ( !empty( $cats ) ) {
    echo '<div class="page-header page-top-header">';
    echo '<select class="myselect">';
    echo '<option data-url="' . get_home_url() .  '">All</option>';
    foreach ( $cats as $cat ) {
      $cat_id = $cat->term_id;
      $cat_name = $cat->name;
      $cat_link = get_category_link( $cat_id );
      echo '<option data-url="' . $cat_link . '">' . $cat_name . '</option>';
    }
    echo '</select>';
    echo '</div>';
  }
?>

我们将此代码放在一个名为“ content-post-categories.php”的文件中。 该文件存储在名为“ template-parts”的目录中。

我们要在“ index.php”和“ archive.php”父文件中导入目标文件。 也就是说,我们将不得不覆盖这些文件并添加我们的自定义代码。

为此,我们首先将这些文件复制并粘贴到我们的子主题中。 我们主题的新结构如下:

接下来,在“ index.php”文件中,添加以下代码:

然后在“ archive.php”文件中:

此时,让我们再次导航到类别页面。

足够令人高兴的是, select工作正常。 大家好!

结论

在本教程中,我们创建了一个WordPress子主题,并介绍了在页面加载时维护所选选项的过程。 希望您发现我们在这里讨论的所有内容都有用,并且可以将它们应用到即将进行的项目中。

最后但并非最不重要的一点是,我们子主题的所有文件都可以作为Github存储库使用 。

翻译自: https://webdesign.tutsplus.com/tutorials/dropdown-navigation-how-to-maintain-the-selected-option-on-page-load-on-a-wordpress-site--cms-32211

wordpress下拉菜单

WordPress建站进阶指南:从零到一打造个性化导航菜单系统 本文详细介绍了如何在WordPress中从零开始创建并深度定制个性化导航菜单系统。从认识主题提供的菜单位置、创建首个菜单,到利用高级选项优化链接行为、添加图标、构建多级下拉菜单,以及管理多个菜单的实用技巧,手把手教你打造逻辑清晰、用户体验专业的网站导航。 阅读详情

相关推荐

Ubuntu 18.04下用OpenLiteSpeed部署WordPress实战指南

Web服务器是动态网站性能的底层基石,其架构设计直接影响PHP应用的并发处理能力与缓存效率。OpenLiteSpeed采用事件驱动模型和原生LSAPI协议,相比传统Apache或Nginx+FastCGI方案,显著降低进程开销与上下文切换成本;其深度集成的LiteSpeed Cache(LSCache)模块,针对WordPress的URL、Cookie、设备类型等维度智能生成缓存键,实现登录用户与访客内容的自动隔离。在Ubuntu 18.04这一长期支持但内核与PHP版本受限的环境中,OpenLiteSpe

weixin_34268753的博客 445

WordPress下拉式框显示所分类目录标签函数-wp_dropdown_categories()

WordPress的wp_dropdown_categories()函数可以让我们以下拉式框的方式显示所分类目录标签,如下图所示:   下面来看看这个标签函数的用法。 说明 该标签在一个没有提交按钮的选择框(如下拉式选框)中展示分类目录列表。 用法   默认用法  <?php $args = array(     'show_option_all

企业级技术与网站app运营 2743

WordPress vs Astro外贸建站选型指南:内容交付系统才是核心

外贸B2B官网本质是面向海外采购商的内容交付系统,而非简单页面生成器。其底层需平衡内容更新频率、多语言专业适配与SEO权重积累三大刚性需求。WordPress凭借成熟插件生态(如Rank Math、WPML、ACF)和可视化编辑能力,成为高频更新、多语言深度协同、ERP实时对接场景下的首选;Astro则以零JavaScript默认、极致静态性能和CDN原生友好,在内容长期稳定、首屏加载严苛(如德国市场LCP<1s)、GDPR合规优先的轻交互场景中展现不可替代价值。二者差异不在技术代际,而在对‘业务节奏—客户

weixin_34268169的博客 352

wordpress创建分类目录下拉表单函数:wp_dropdown_categories

函数 wp_dropdown_categories( $args ); 描述 显示一个目录下拉选择表单元素,函数直接返回html内容。 参数 $args $args = [ 'show_option_all' => '', 'show_option_none' => '', 'option_none_value' => '-1', 'orderby' => 'ID', 'order' => 'ASC', 'show_count' => 0, 'hide_empty'

飞飞程序员 455

全面解析SuperNews杂志WordPress主题

本文还有配套的精品资源,点击获取 简介:SuperNews杂志WordPress主题是一款专为电子书网站和博客设计的高质量主题,具备丰富功能和优雅设计。它提供了响应式设计、多种布局选项、社交分享功能、SEO优化、多语言支持和广告管理系统等,旨在为内容创作者提供一个全面且易用的平台。兼容最新WordPress版本并支持WooCommerce插件,适合搭建个性化在线商店。 ...

weixin_35749545的博客 836

专业主题模板"expose" WordPress详解与实战

本文还有配套的精品资源,点击获取 简介:WordPress是一个流行的内容管理系统,而"expose"是专为WordPress设计的专业收费主题模板,提供高级功能、独特设计和增强用户体验。模板具有响应式布局、多用途设计和丰富的自定义选项,适用于多种应用场景。用户通过WordPress后台激活模板,并可能需要借助页面构建器等工具来充分利用其功能。"expose"还集成了多种插...

weixin_42612804的博客 1641

wordpress下拉菜单_如何在WordPress中创建下拉菜单(入门指南)

wordpress下拉菜单Do you want to make a dropdown menu and add it to your WordPress website? 您要创建一个下拉菜单并将其添加到您的WordPress网站吗? A dropdown menu shows a list of links as you take your mouse over an item on t...

cumohuo9136的博客 3125

wp-bootstrap-navwalker-dropdown:这是navwalker下拉菜单的一个版本

wp-bootstrap-navwalker-下拉菜单 这是navwalker下拉菜单的一个版本。 #安装 将wp_bootstrap_navwalker.php放入您的WordPress主题文件夹/ wp-content / your-theme / 打开您的WordPress主题functions.php文件/wp-content/your-theme/functions.php并添加以下代码: // Custom Navigation Walker require_once('wp_bootstrap_navwalker.php'); #用法 通过在wp_nav_menu数组中添加“ walker”项,更新header.php中的wp_nav_menu()函数以使用新的walker。 <?php // Menu Location wp_nav_menu ( array (

wamp安装wordpress提示Can't select database

1、安装的时候确保下面这些都没错。 /** The name of the database for WordPress */ define( 'DB_NAME', 'database_name_here' ); /** MySQL database username */ define( 'DB_USER', 'username_here' ); /** MySQL database pas...

WorthPin.com值品分享 1967

wordpress进阶教程(七):自定义面板添加下拉框、选择框等表单项

上一篇文章,我们在wordpress后台文章编辑页面添加了自定义面板,并且在自定义面板中可以输入关键词和描述信息,但是我们仅仅使用了一个textarea文本域表单,这在实际应用中是远远不够的,实际应用我们可能需要文本框、文本域、单选框、复选框、下拉选择框、图片上传、甚至是wordpress自带的文本编辑器或者自己配置的文本编辑器以及各种带js特效的应用。 今天我们给自定义面板添加简单的表单:文本框、文本域、单选框、复选框、下拉选择框。 我们继续使用昨天的文件,改进昨天的代码。 首先准备工作: 先将昨天新建的metabox.php文件中的代码清楚,准备字段数组:我们可以参考前面后台教程中配置选项

Klipper-源码模块

Klippy上位机程序采用多线程架构,包含四个主要进程:主线程处理G代码命令、串口IO线程(C语言实现)、MCU响应处理线程(Python实现)和独立日志线程。代码结构分为三大模块:chelper(C语言辅助函数)、extras(扩展功能如温度控制)和kinematics(运动学模型实现)。核心功能模块包括串口通信(serialhdl.py)、步进电机控制(stepper.py)、运动学计算等,其中C语言实现的底层模块通过serialqueue.c处理高效IO。扩展模块支持热床、传感器等外设,运动学子模块提

weixin_44258581的博客 991

【开源宝藏】Bootstrap 5与WordPress的完美结合:打造现代导航菜单

【开源宝藏】Bootstrap 5与WordPress的完美结合:打造现代导航菜单 在追求网站用户体验和视觉统一性的今天,Bootstrap 5作为前端开发框架的明星选手,以其简洁优雅的设计和强大的响应式功能广受开发者欢迎。而WordPress,则是内容管理系统的翘楚,为数百万网站提供动力。当这两个巨头相遇,会发生怎样令人兴奋的化学反应呢?【bootstrap-5-wordpress-navbar...

gitblog_00030的博客 662

【低空经济】无人机充电站设计方案

随着无人机技术的快速发展和广泛应用,其在物流、农业、巡检、救援等领域的应用日益普及。然而,无人机的续航能力一直是限制其大规模应用的关键因素之一。为了解决这一问题,无人机充电站的设计与建设显得尤为重要。本项目旨在设计一套高效、智能、可扩展的无人机充电站系统,以满足不同场景下无人机的充电需求,提升其作业效率和应用范围。无人机充电站的设计将围绕以下几个核心目标展开:首先,充电站应具备快速充电能力,以减少无人机的停机时间,提高作业效率;

2960

WordPress初学者入门教程-仪表板的概览

你可以在你的网站上添加/编辑内容,上传图片,修改评论,改变你的网站主题,添加/删除插件,以及作为一个网站所有者需要做的所有其他事情。你看到的将取决于你在仪表板中的位置、你已经安装的WordPress版本、安装的插件和主题。与屏幕选项一样,帮助面板是上下文敏感的,所以它会向你显示你目前工作的仪表板区域最有用的帮助项(我在仪表板的评论部分时,我拍了这张截图)。这个菜单给你一个直接的链接来编辑你的个人资料(我们稍后会填写)和一个退出你的WordPress仪表板的链接。请注意,并不是仪表板的所有区域都有屏幕选项。.

邱哥有言 298

禁止使用服务器 IP 访问 Apache 环境下的 Web 站点

通过在 Apache 的配置文件中添加适当的指令,我们可以轻松地禁止使用服务器 IP 地址访问我们的 Web 站点。在 Apache 环境下,有时我们希望禁止用户使用服务器的 IP 地址直接访问我们的 Web 站点,而只允许使用域名进行访问。现在,当用户尝试使用服务器的 IP 地址来访问你的网站时,他们将会被拒绝访问,只有通过域名才能正常访问。为了实现这个目标,我们可以通过 Apache 的配置文件进行相应的设置。表示禁止对根目录的访问权限,即禁止使用服务器的 IP 地址进行访问。

TpCode的博客 945

电源完整性分析:PDN阻抗与去耦电容设计——目标阻抗计算与电容选型深度实战

摘要:随着嵌入式处理器主频突破 GHz、多核架构普及,电源完整性(Power Integrity, PI)已成为高速 PCB 设计中不可忽视的关键环节。本文从 PDN(电源分配网络)阻抗模型出发,系统讲解目标阻抗计算方法、去耦电容选型策略、反谐振抑制技术,并结合 STM32F4 核心板的完整设计实例,提供一套可落地的电源完整性工程实践方案。电源完整性设计是一项系统工程,需要从目标阻抗计算电容选型反谐振抑制PCB 布局目标阻抗是设计的起点,由电源电压、纹波要求和瞬态电流决定去耦电容。

从事移动开发八年,csdn博客专家,阿里云特邀专家,华为云云享专家,高级网络信息安全工程师,大数据工程师(高级),python技术开发(高级),HarmonyOS 应用开发者高级认证,现在某学校任教。 1万+

用AI从零开发WordPress导航主题:三天实践全记录

网站建设中,主题是决定前端体验与数据组织方式的核心载体,而WordPress凭借成熟的内容模型与插件生态,成为构建导航站、资源聚合类网站的主流选择。从自定义文章类型与分类法设计原理出发,可以把导航链接建模为独立内容,通过后台灵活维护分类、缩略图与跳转逻辑,实现高复用性的导航站主题。结合AI辅助编程的现实工作流,将功能拆解为小粒度任务、逐项生成代码并整合调试,能够大幅提升开发效率。这类主题适用于设计资源导航、开源工具聚合等场景,尤其适合需要轻量、可定制导航页面的个人与团队。文章完整记录了一个WordPress

weixin_34547628的博客 187

OpenCV实战(24)——相机姿态估计

如果物体的 3D 结构是已知的,那么就可以预测物体如何投影到相机的传感器上,图像形成的过程由投影方程描述。当方程的大部分项已知时,就可以通过观察一些图像来推断其他元素 (2D 或 3D) 的值。相机姿态估计就是通过几个已知坐标的特征点,以及这些点在照片中的成像位置,求解出相机位于坐标系内的坐标与旋转角度。在本节中,我们将研究观察已知 3D 结构时的相机姿态估计问题。

盼小辉丶的博客 2万+

CodeRed CMS:基于Wagtail的WordPress替代方案,快速构建营销网站的终极指南

想要快速构建专业营销网站却厌倦了WordPress的限制?CodeRed CMS就是您的完美解决方案!作为基于Wagtail的专业WordPress替代方案,CodeRed CMS提供了完整的营销网站构建工具集,让您能够在几分钟内启动功能丰富的网站。这个强大的开源CMS结合了Wagtail的内容管理能力和Bootstrap 5的前端框架,专门为营销团队和开发者设计,提供了开箱即用的营销功能组件。

gitblog_00775的博客 969

基于STM32的智能血氧、心率、体温、血压监测系统

摘要:本文设计了一款基于STM32F103C8T6的多功能健康监测系统,可实时检测血氧、心率、体温和血压四项生理参数。系统集成MAX30102、DS18B20等传感器模块,采用OLED显示和蓝牙无线传输技术,实现一键血压测量、阈值报警及手机APP数据管理功能。硬件设计包含传感器采集、电源管理、显示报警等模块;软件采用模块化架构,实现数据采集处理、蓝牙通讯等功能。测试表明系统测量准确可靠,为家庭健康监测提供了便携解决方案。未来可扩展更多监测参数和智能分析功能。

3254968421的博客 771

基于YOLOv5的仪表读数识别系统:从检测到识别的完整解决方案

随着工业自动化水平的不断提高,仪表读数识别技术在电力系统、石油化工、智能制造等领域发挥着越来越重要的作用。本文提出了一种基于YOLOv5的仪表自动读数识别系统,该系统能够有效区分指针式和数字式仪表,并实现高精度的读数识别。我们详细介绍了系统的整体架构、数据集构建、模型训练策略以及用户界面设计,并提供了完整的代码实现。实验结果表明,本系统在仪表检测和读数识别任务上均取得了优异的表现,为工业现场的自动化监控提供了可靠的技术支持。关键词:仪表读数识别;YOLOv5;目标检测;深度学习;工业自动化。

YOLO 678

如何修复WordPress数据库

多年来,许多用户向我们询问如何修复损坏的WordPress数据库。如果数据库损坏,可能会导致许多问题,包括错误消息、白屏甚至网站无法访问。我们有快速修复WordPress数据库的经验,并将教您如何迅速让您的网站恢复运行。例如,您可以检查登录凭据或使用不同的工具和插件来修复WordPress数据库。在本文中,我们将展示如何以几种简单的方法修复WordPress数据库。

web_geek的博客 998

基于Simulink的无迹卡尔曼滤波(UKF)SOC高精度估计仿真

本文介绍了基于Simulink的无迹卡尔曼滤波(UKF)在电池SOC高精度估计中的应用。通过无迹变换替代传统EKF的线性化过程,UKF显著提升了SOC估计精度,在强非线性工况下误差可控制在0.5%以内。文章详细阐述了UKF的核心原理,包括Sigma点生成、状态预测和观测更新等关键步骤,并基于Thevenin等效电路模型构建了完整的UKF SOC估算系统。通过Simulink建模和仿真验证,展示了UKF在大电流脉冲、变温工况等复杂场景下的优异性能,其动态响应时间小于30ms,长期累积误差低于0.7%。研究为储

amy_mhd的博客 124

新手零基础建站指南:从服务器选购到WordPress部署全流程

网站部署是互联网应用开发的基础环节,其核心原理在于将代码、数据库和Web服务软件整合在服务器上,并通过域名提供网络访问。这一过程的技术价值在于赋予开发者对计算资源和软件环境的完全控制权,是实现个性化功能、优化性能与保障数据安全的前提。在应用场景上,无论是个人博客、企业官网还是项目测试环境,都需要一套稳定、高效的部署方案。本文聚焦于**宝塔面板**与**Nginx**这两个关键工具,通过图形化界面管理,将复杂的Linux服务器环境配置与Web服务部署流程标准化、可视化,大幅降低了运维门槛,使初学者也能快速搭建

weixin_30947043的博客 385

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

WordPress高效开发:_tw+ACF+Tailwind+Alpine技术栈实战解析

在Web开发领域,组件化开发与实用优先的CSS方法论已成为提升工程效率的主流实践。组件化通过封装可复用的代码单元,实现了关注点分离与更好的可维护性;而实用优先的CSS(Utility-First CSS)则通过原子化类名直接定义样式,大幅减少了在样式文件与模板间切换的认知负担,并有效避免了样式冲突。这两者的结合,为构建结构清晰、性能优异且易于维护的现代网站提供了坚实的技术基础。其核心价值在于,开发者能以更快的速度交付高质量、定制化的项目,同时为内容管理者提供直观、不易出错的结构化编辑体验。这一模式尤其适用于

weixin_32183107的博客 330

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

WordPress多语言网站原生化建设指南:从URL路由到SEO落地

多语言网站不是简单添加翻译按钮,而是涉及URL结构、内容存储、交互逻辑与搜索引擎索引的系统工程。其核心在于实现语言感知的路由机制(如/en/、/zh/子目录)、翻译内容本地化存储(数据库而非CDN)、以及HTML语义与无障碍支持的完整性。技术价值体现在SEO友好性提升、表单与AJAX交互稳定、用户状态可持久化;典型应用场景包括高校国际官网、跨境电商、政府服务平台及专业服务机构。本文聚焦WordPress生态,以Polylang为实践主线,深入解析原生级多语言基础设施的构建逻辑,覆盖URL重写、ACF字段桥接

weixin_32390647的博客 189

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

上一篇: python:从入门到精通_HTML5精通:片段
下一篇: 比qt更好的 跨平台_更好的跨平台开发:Microsoft教程系列的重点
daique1908
博客等级 码龄10年 29粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值