移除wordpress后台相关的功能

// 移除站点健康菜单
add_action( 'admin_menu', 'remove_site_health_submenu', 999 );
function remove_site_health_submenu() {
    $page = remove_submenu_page( 'tools.php', 'site-health.php' );
}

// 禁用站点健康功能
add_filter('health_check_enabled', '__return_false');

// 移除仪表盘中的小部件
add_action('wp_dashboard_setup', 'remove_dashboard_widgets');
function remove_dashboard_widgets() {
    remove_meta_box('dashboard_site_health', 'dashboard', 'normal'); // 站点健康
    remove_meta_box('dashboard_activity', 'dashboard', 'normal'); // 活动
    remove_meta_box('dashboard_primary', 'dashboard', 'side'); // 新闻
    // remove_meta_box('dashboard_quick_press', 'dashboard', 'side'); // 保留快速草稿
    remove_meta_box('dashboard_right_now', 'dashboard', 'normal'); // 概览
    remove_action('welcome_panel', 'wp_welcome_panel');// 欢迎小部件
}

wordpress apache .htaccess

如果使用apache来部署wordpress,这是相应的.ataccess文件的内容,记录以备用。

# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END 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自定义文章类型,在管理列表页显示分类名

只需要在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在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;

?>