标签: wordpress

  • 常用的WordPress模板文件

    wordpress模版文件相关对照:

    sidebar.php(侧边栏),

    index.php(首页索引),

    style.css(样式文件),

    category.php(分类目录),

    archive.php(文章存档),

    search.php(搜索文件),

    single.php(文章详情),

    page.php(单页/独立页),

    tag.php(标签文件),

    author.php(作者),

    functions.php(主题函数),

    404.php(404错误页),

    header.php(头部文件),

    footer.php(底部文件),

    comments.php(评论)。

    常用的WordPress模板文件

    以下是WordPress识别的一些基本主题模板和文件的列表。

    • index.php 主模板文件。 所有主题都是必需的。
    • style.css 主要样式表。 它在所有主题中都是必需的,并且包含主题的信息标题。
    • rtl.css 如果网站语言的文本方向是从右到左,则自动包含从右到左的样式表。
    • comments.php 评论模板。
    • front-page.php 首页模板始终用作站点首页(如果存在),无论管理员>设置>阅读上的设置如何。
    • home.php 默认情况下,主页模板是首页模板。 如果您没有将WordPress设置为使用静态首页,则此模板用于显示最新的帖子。
    • header.php 标题模板文件通常包含您的站点的文档类型,元信息,样式表和脚本的链接以及其他数据。
    • singular.php 单独的模板用于没有找到single.php的帖子,或者当没有找到page.php的页面时。 如果没有找到singular.php,则使用index.php。
    • single.php 当访问者请求单个帖子时,使用单个帖子模板。
    • single-{post-type}.php 访问者从自定义帖子类型请求单个帖子时使用的单个帖子模板。 例如,single-book.php将用于从定制的帖子类型命名的书中显示单个帖子。 如果不存在自定义帖子类型的特定查询模板,则使用index.php。
    • archive-{post-type}.php 当访问者请求自定义帖子类型归档时,将使用归档文件类型模板。 例如,archive-books.php将用于显示自定义帖子类型命名书籍的帖子存档。 如果archive-{post-type} .php不存在,则使用archive.php模板文件。
    • page.php 当访问者请求单独的页面(内置模板)时,将使用页面模板。
    • page-{slug}.php 访问者请求特定页面时使用页面插件模板,例如使用“about”slug(page-about.php)的页面插件模板。
    • category.php 当访问者按类别请求帖子时,将使用类别模板。
    • tag.php 当访问者通过标签请求帖子时,使用标记模板。
    • taxonomy.php 当访问者在自定义分类法中请求术语时,将使用分类术语模板。
    • author.php 访问者加载作者页面时,将使用作者页面模板。
    • date.php 日期/时间模板在通过日期或时间请求帖子时使用。 例如,使用这些子生成的页面:
    • http://example.com/blog/2014/
    • http://example.com/blog/2014/05/
    • http://example.com/blog/2014/05/26/
    • archive.php 当访问者按类别,作者或日期请求帖子时,使用归档模板。 注意:如果存在类似于category.php,author.php和date.php的更多特定模板,则此模板将被覆盖。
    • search.php 搜索结果模板用于显示访问者的搜索结果。
    • attachment.php 当查看单个附件(如图像,pdf或其他媒体文件)时,将使用附件模板。
    • image.php 图像附件模板是attachment.php的更具体的版本,在查看单个图像附件时使用。 如果不存在,WordPress将使用attachment.php。
    • 404.php 当WordPress找不到与访问者请求相匹配的帖子,页面或其他内容时,将使用404模板。

    使用模板文件

    在WordPress模板中,您可以使用模板标签动态显示信息,包括其他模板文件,或以其他方式自定义您的网站。

    例如,在index.php中,您可以在最终生成的页面中包含其他文件:

    • 要包括标题,请使用 get_header()
    • 要包含边栏,请使用 get_sidebar()
    • 要包括页脚,请使用 get_footer()
    • 要包含搜索表单,请使用 get_search_form()
    • 要包括自定义主题文件,请使用 get_template_part()

    以下是WordPress模板标记的示例,以将特定的模板包含在您的页面中:

    <?php get_sidebar(); ?>
    
    <?php get_template_part( 'featured-content' ); ?>
    
    <?php get_footer(); ?>
  • WordPress去掉URL中的Category

    在WordPress网站中,默认的分类URL结构通常是www.example.com/category/category-name/,这对于SEO和用户体验来说并不是最理想的。如果你希望去掉category这一部分,可以通过插件或者修改代码来实现。本文将介绍一种通过插件实现的简便方法:使用 No Category Base (WPML) 插件。

    为什么要去掉category

    1. 简洁的URL结构:简短的URL更容易被记住,也更具吸引力。
    2. SEO优化:更简洁的URL结构可能对搜索引擎友好,因为它减少了冗余信息,并且能让你的分类页面更集中地传达关键词。
    3. 提高用户体验:清晰、简短的URL可以提升用户的点击意愿,降低跳出率。

    步骤1:安装和激活No Category Base插件

    1. 登录到你的WordPress后台。
    2. 在左侧菜单栏中,选择插件 > 安装插件
    3. 在搜索框中输入“No Category Base (WPML)”。
    4. 在搜索结果中找到该插件,并点击安装按钮。
    5. 安装完成后,点击启用

    步骤2:配置插件

    激活插件后,插件会自动开始工作,并移除WordPress默认分类URL中的category部分。你不需要额外配置其他选项,插件会自动生效。

    步骤3:检查分类链接

    1. 打开网站,找到一个分类页面,例如www.example.com/category/technology/
    2. 访问该页面时,URL应自动更新为www.example.com/technology/,其中category部分已经被去掉。

    注意事项

    • 与其他插件兼容性:虽然No Category Base插件非常受欢迎,但有些其他插件可能与其存在冲突。如果你遇到问题,可以尝试禁用其他插件并逐一排查。
    • URL重定向:如果你的站点之前已经有了category部分的URL,并且这些链接已经被搜索引擎索引,确保设置适当的301重定向,以免影响SEO。
    • 其他方法:除了插件方法,你还可以通过修改.htaccess文件或使用自定义的函数来实现这一功能,但这些方法相对较为复杂。

    结论

    通过使用No Category Base (WPML)插件,你可以轻松去掉WordPress中分类URL的category部分。这个方法既简单又有效,可以帮助你优化网站的结构,提升SEO和用户体验。对于那些希望自定义URL结构而又不想深入代码的用户来说,这是一个非常实用的解决方案。

  • 预览wordpress官方主题的方法

    https://2025.wordpress.net

    修改前面的数字,就可以查看对应的主题

  • WordPress自定义文章类型,在管理列表页显示分类名

    只需要在register_taxonomy函数的第三个参数中,添加show_admin_column=>true即可。代码如下:

    <?php
    
    /**
     * 为产品 post type 添加分类功能
     */
    add_action('init', 'my_taxonomies_product', 0);
    function my_taxonomies_product() {
        $labels = array(
            'name'              => _x('产品分类', 'taxonomy 名称'),
            'singular_name'     => _x('产品分类', 'taxonomy 单数名称'),
            'search_items'      => __('搜索产品分类'),
            'all_items'         => __('所有产品分类'),
            'parent_item'       => __('该产品分类的上级分类'),
            'parent_item_colon' => __('该产品分类的上级分类:'),
            'edit_item'         => __('编辑产品分类'),
            'update_item'       => __('更新产品分类'),
            'add_new_item'      => __('添加新的产品分类'),
            'new_item_name'     => __('新产品分类'),
            'menu_name'         => __('产品分类'),
        );
        $args = array(
            'labels' => $labels,
            'hierarchical' => true,
            'show_admin_column' => true,
        );
        register_taxonomy('product_category', 'product', $args);
    }
    

    如果要在列表中添加自定义字段,即wp_postmeta表中的字段(通过meta_box添加的),可以使用下面的代码:

    <?php
    
    // 在列表中把加的字段显示出来
    add_action("manage_posts_custom_column",  "product_custom_columns");
    function product_custom_columns($column) {
        global $post;
        switch ($column) {
            case "product_director":
                echo get_post_meta($post->ID, '_product_director', true);
                break;
        }
    }
    
    add_filter("manage_edit-product_columns", "movie_edit_columns");
    function movie_edit_columns($columns) {
        $columns['product_director'] = '产品分类';
        return $columns;
    }
    
  • WordPress在single页面获取自定发布类型的分类

    在详情页面,即single页面获取自定义发布类型的分类

    <?php
    
    /** 第一个参数表是当前文章的ID, 第二个参数表示所属的分类法,即taxonomy name。在single页面时可以直接使用 $post->ID **/
    $terms = get_the_terms($post->ID, 'product_category');
    if ($terms && !is_wp_error($terms)) :
        $terms_name_arr = array();
        foreach ($terms as $term) {
            $terms_name_arr[] = $term->name;
        }
        $terms_name_str = join(" ", $terms_name_arr);
    endif;
    echo $terms_name_str;
  • WordPress在single页面获取当前发布类型的名字

    <?php
    $postType = get_post_type_object(get_post_type($post));
    if ($postType) {
        echo esc_html($postType->labels->singular_name);
    }

  • WordPress在archive.php页面获取当前分类信息

    代码如下:

    echo get_queried_object()->term_id;

    或者直接使用:

    $term_id = get_queried_object_id();

    获取分类的其它信息

    $tax = $wp_query->get_queried_object();
    echo $tax->name; // wp_terms表的name字段
  • WordPress在archive.php页面获取文章列表

    除了使用WP_Query函数之外,还可以使用query_posts函数来查询,如下:

    <?php
    query_posts(array(
        'post_type'   => 'case', // You can add a custom post type if you like
        'paged'     => get_query_var('paged', 1),
        'posts_per_page' => 1
    ));
    
    while (have_posts()) :
        the_post();
    ?>
        <a href="<?php the_permalink() ?>" class="col-xs-12 col-sm-4 col-md-4 col-lg-4 block-four-list">
            <div class="block-four-list-wrap">
                <img src="<?php echo catch_that_image(); ?>" alt="">
                <div class="infos-right-view2 about-a-infos">
                    <h5>成功案例</h5>
                    <h1><?php the_title() ?></h1>
                    <span class="a-more-4">了解更多<i class="iconfont icon-youjiantou6"></i></span>
                </div>
            </div>
        </a>
    
    
    <?php
    endwhile;
    
    ?>
  • WordPress修改默认发布类型(post)的一些参数

    <?php
    add_action('init', 'cp_change_post_object');
    // Change dashboard Posts to News
    function cp_change_post_object() {
        $get_post_type = get_post_type_object('post');
        $labels = $get_post_type->labels;
        //$labels->name = 'News';
        $labels->singular_name = '新闻资讯';
        // $labels->add_new = 'Add News';
        // $labels->add_new_item = 'Add News';
        // $labels->edit_item = 'Edit News';
        // $labels->new_item = 'News';
        // $labels->view_item = 'View News';
        // $labels->search_items = 'Search News';
        // $labels->not_found = 'No News found';
        // $labels->not_found_in_trash = 'No News found in Trash';
        // $labels->all_items = 'All News';
        // $labels->menu_name = 'News';
        // $labels->name_admin_bar = 'News';
    }
  • WordPress搜索功能的制作

    首先要创建一个搜索表单,示例代码如下:

    <form method="get" action="" onsubmit="return checkForm();">
        <input type="text" placeholder="搜索" name="s" value="<?php the_search_query(); ?>">
        <button type="submit">
            <i class="iconfont icon-sousuo"></i>
        </button>
    </form>

    表单要注意的是,搜索关键词输入框的name一定要为s,不然wordpress识别不了,也就进不了search.php模板页面。

    这样,在点击搜索按钮后,wordpress就会自动跳转到search.php模板页面。

    search.php主要代码参考:

    <div class="met-news-list" m-id="noset">
        <ul class="ulstyle met-pager-ajax imagesize" data-scale="400x400">
            <?php
            $paged = 1;
            if (get_query_var('page')) {
                $paged = get_query_var('page');
            }
            $s = get_search_query();
            $args = array(
                's' => $s,
                'paged' => $paged,
                'posts_per_page' => 20
            );
    
            // The Query
            $the_query = new WP_Query($args);
            if ($the_query->have_posts()) {
                while ($the_query->have_posts()) {
                    $the_query->the_post();
            ?>
                    <li>
                        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
                    </li>
    
                    <li class="media media-lg border-bottom1">
                        <div class="media-left">
                            <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
                                <img class="media-object" src="<?php echo catch_that_image(); ?>" alt="<?php the_title(); ?>" height="100" />
                            </a>
                        </div>
                        <div class="media-body">
                            <h4> <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" target="_self"><?php the_title(); ?></a> </h4>
                        </div>
                    </li>
    
                <?php
                }
            } else {
                ?>
                <!--未找到任何搜索结果-->
    
            <?php }
            ?>
        </ul>
        <div class="m-t-20 text-xs-center hidden-sm-down" m-type="nosysdata">
            共<strong><?php echo $the_query->max_num_pages; ?></strong>页 <strong><?php echo $wp_query->found_posts; ?></strong>条
        </div>
        <?php bootstrap_pagination($the_query); ?>
    </div>