WordPress创建搜索页面
在WordPress中创建一个搜索页面,你可以使用内置的搜索功能,也可以通过自定义搜索表单和查询来实现。以下是一个简单的自定义搜索页面的例子:
- 创建一个新的页面模板,命名为
search.php
。 - 将以下代码复制到
search.php
文件中:
<?php
/*
Template Name: 自定义搜索页面
*/
?>
<?php get_header(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main">
<?php if ( have_posts() ) : ?>
<header class="page-header">
<h1 class="page-title"><?php printf( esc_html__( '搜索结果:%s', 'textdomain' ), '<span>' . get_search_query() . '</span>' ); ?></h1>
</header><!-- .page-header -->
<?php
// 开始循环查询文章
while ( have_posts() ) : the_post();
get_template_part( 'template-parts/content', get_post_format() );
// 结束循环
endwhile;
// 显示分页导航
the_posts_navigation();
else :
get_template_part( 'template-parts/content', 'none' );
endif; ?>
</main><!-- #main -->
</div><!-- #primary -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
- 在你的WordPress后台创建一个新页面,在“页面”编辑器中选择你刚刚创建的
自定义搜索页面
模板。 - 设置这个页面为搜索页面:在WordPress后台,前往“设置” > “常规”,找到“搜索”选项,在“搜索页面”中选择你刚刚创建的页面。
- 保存并发布你的页面。
现在,当用户访问你设置为搜索页面的页面时,他们将看到一个带有搜索表单的页面,输入搜索词后将直接导向搜索结果页面。
提示:仅供参考
<?php
// 在functions.php或你的插件文件中使用
// 定义一个函数来初始化并注册自定义文章类型
function my_custom_page_init() {
// 设置自定义文章类型的参数
$args = array(
// 设置为true,使文章类型在WordPress管理界面中可见
'public' => true,
// 管理界面中显示的文章类型名称
'label' => '自定义页面',
// 管理界面中显示的文章类型名称的单数形式
'singular_label' => '自定义页面',
// 管理菜单中的位置
'menu_position' => 5,
// 文章类型在管理菜单中的图标
'menu_icon' => 'dashicons-admin-site',
// 设置为true,表示这个自定义文章类型支持REST API
'show_in_rest' => true,
// 定义了文章编辑器中可用的功能集
'supports' => array('title', 'editor', 'thumbnail'),
// 设置为false,表示不为这个自定义文章类型创建归档页面
'has_archive' => false,
// 自定义文章类型的URL重写规则
// 注意:'pages' => true 可能是个误解或错误,通常这里只设置'slug'
'rewrite' => array('slug' => 'my-custom-page'), // 移除了'pages' => true
// 定义了与这个自定义文章类型相关的能力类型
'capability_type' => 'page',
);
// 使用上述参数注册新的自定义文章类型
register_post_type('my_custom_page', $args);
}
// 将自定义文章类型的初始化函数添加到WordPress的init动作上
add_action('init', 'my_custom_page_init');