# 开发者文档

- 原文链接：https://www.xintheme.com/docs/navxia-theme-docs/developer-docs
- 发布日期：2026-08-07
- 更新时间：2026-08-07
- 作者：大胡子 | XinTheme

## 摘要

通过子主题覆盖父主题功能 NavXia 主题支持通过子主题覆盖部分父主题函数。你可以在不直接修改父主题文件的情况下，自定义网址导航的名称、固定链接、分类链接和搜...

## 正文

通过子主题覆盖父主题功能
------------

NavXia 主题支持通过子主题覆盖部分父主题函数。你可以在不直接修改父主题文件的情况下，自定义网址导航的名称、固定链接、分类链接和搜索类型等内容。

使用子主题进行修改，可以避免父主题更新后覆盖已经修改的代码，也更方便后续维护和升级。

使用前准备
-----

请先安装并启用 NavXia-Child 子主题，然后打开子主题目录中的 `functions.php` 文件：

```
/wp-content/themes/NavXia-Child/functions.php
```

将需要使用的覆盖代码添加到该文件中。

**请注意：**示例代码目前使用 `/*` 和 `*/` 进行了注释。如果需要启用对应功能，请移除函数前后的注释符号。

修改网址导航文章类型
----------

`create_tool_post_type()` 函数用于覆盖父主题中网址导航文章类型的注册参数。

通过该函数，可以修改网址导航在后台显示的名称、菜单图标、支持的编辑功能以及详情页固定链接。

### 修改后台显示名称

示例代码将网址导航相关名称修改为“工具”，例如：

- 添加工具
- 编辑工具
- 所有工具
- 搜索工具

你可以根据网站类型，将这些文字修改为“游戏”“软件”“资源”“网站”或其他名称。

### 修改详情页固定链接

以下参数用于设置网址导航详情页的固定链接前缀：

```
'rewrite' => array(
    'slug' => 'game',
),
```

设置后，网址导航详情页链接将使用以下格式：

```
https://example.com/game/内容别名/
```

你可以将 `game` 修改为自己需要的英文或数字，例如：

- `software`
- `website`
- `resource`
- `app`

不建议使用中文、空格或特殊符号作为固定链接前缀。

### 文章类型支持的功能

示例代码中的网址导航支持以下编辑功能：

```
'supports' => array(
    'title',
    'editor',
    'excerpt',
),
```

- **title：**标题。
- **editor：**正文编辑器。
- **excerpt：**摘要。

如果需要支持特色图片，可以在数组中增加 `thumbnail`：

```
'supports' => array(
    'title',
    'editor',
    'excerpt',
    'thumbnail',
),
```

修改网址导航分类法
---------

`create_tool_taxonomy()` 函数用于覆盖网址导航分类、网址导航标签和特色标签的注册参数。

### 网址导航分类

`tool_category` 是网址导航使用的层级分类法，使用方式与 WordPress 文章分类目录类似，可以创建父级分类和子分类。

以下参数用于修改分类页面的固定链接前缀：

```
'rewrite' => array(
    'slug'         => 'game-category',
    'with_front'   => false,
    'hierarchical' => true,
),
```

设置后，网址导航分类页面将使用以下链接格式：

```
https://example.com/game-category/分类别名/
```

### 网址导航标签

`tool_tag` 是网址导航使用的标签分类法，默认不支持父子层级。

以下参数用于修改标签页面的固定链接前缀：

```
'rewrite' => array(
    'slug'         => 'game-tag',
    'with_front'   => false,
    'hierarchical' => true,
),
```

设置后，网址导航标签页面将使用以下链接格式：

```
https://example.com/game-tag/标签别名/
```

### 特色标签

`feature_tag` 用于在后台为网址导航设置特色属性。该分类法只在后台使用，不会生成前端归档页面。

```
'public'             => false,
'publicly_queryable' => false,
'rewrite'            => false,
```

示例代码使用以下回调函数，将特色标签显示为下拉选择框：

```
'meta_box_cb' => 'feature_tag_dropdown_metabox',
```

使用该设置前，请确保主题或子主题中已经存在 `feature_tag_dropdown_metabox()` 函数，否则编辑网址导航时可能无法正常显示特色标签选择框。

修改搜索类型名称
--------

`tool_search_type_dropdown()` 函数用于修改网站搜索框中的内容类型选项。

示例代码将搜索类型显示为：

- 游戏
- 文章

```
$options = [
    'tool' => __('游戏', 'xintheme'),
    'post' => __('文章', 'xintheme'),
];
```

你可以将“游戏”修改为网站实际使用的内容名称，但数组键 `tool` 不要修改，因为它是主题内部使用的文章类型名称。

### 修正默认搜索类型

原示例中的默认值写成了 `product`：

```
$search_type = isset($_GET[$name]) && $_GET[$name] === 'post' ? 'post' : 'product';
```

由于搜索选项中使用的是 `tool`，这里应当将 `product` 修改为 `tool`：

```
$search_type = isset($_GET[$name]) && $_GET[$name] === 'post' ? 'post' : 'tool';
```

否则默认搜索类型可能无法正确选中“游戏”选项。

启用覆盖代码
------

示例中的每个函数都被单独注释，你可以只启用需要修改的部分。

例如，需要修改网址导航文章类型时，将以下结构：

```
/*function create_tool_post_type() {
    // 自定义代码
}*/
```

修改为：

```
function create_tool_post_type() {
    // 自定义代码
}
```

网址导航分类法和搜索筛选函数也使用相同的方法启用。

重新保存固定链接
--------

修改文章类型或分类法的 `slug` 后，需要进入 WordPress 后台的“设置 → 固定链接”，直接点击“保存更改”。

重新保存固定链接后，WordPress 会更新链接重写规则，使新的网址结构生效。

如果修改后访问详情页或分类页出现 404 错误，通常可以通过重新保存固定链接解决。

注意事项
----

- 请将覆盖代码添加到 NavXia-Child 子主题中，不要直接修改父主题文件。
- 修改 PHP 文件前，建议先备份网站文件和数据库。
- 函数名称必须与父主题中的函数名称保持一致，否则无法覆盖原有功能。
- 父主题中的对应函数需要使用 `function_exists()` 判断后再声明，子主题覆盖才能正常生效。
- 不要在父主题和子主题中重复声明同名函数，否则可能导致网站出现致命错误。
- 修改固定链接前缀后，原有链接可能失效，正式网站建议设置 301 重定向。
- 修改代码后，如果前端没有变化，请清理主题缓存、缓存插件和 CDN 缓存。