WordPress创建搜索页面

WordPress创建搜索页面

在WordPress中创建一个搜索页面,你可以使用内置的搜索功能,也可以通过自定义搜索表单和查询来实现。以下是一个简单的自定义搜索页面的例子:

  1. 创建一个新的页面模板,命名为 search.php
  2. 将以下代码复制到 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(); ?>
  1. 在你的WordPress后台创建一个新页面,在“页面”编辑器中选择你刚刚创建的 自定义搜索页面 模板。
  2. 设置这个页面为搜索页面:在WordPress后台,前往“设置” > “常规”,找到“搜索”选项,在“搜索页面”中选择你刚刚创建的页面。
  3. 保存并发布你的页面。

现在,当用户访问你设置为搜索页面的页面时,他们将看到一个带有搜索表单的页面,输入搜索词后将直接导向搜索结果页面。

提示:仅供参考

<?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');