5ucms论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 10973|回复: 1
打印 上一主题 下一主题

[主题/模板] wordpress自定义文章类型及分类

[复制链接]

670

主题

785

帖子

8273

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8273
跳转到指定楼层
楼主
发表于 2021-6-3 08:49:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
出于懒惰的考虑,在网站里新增了一个称之为【收藏夹】的功能,主要目的就是看到一些比较不错的网站就搜集起来留以备用,虽然chrome的书签可以同步,但是谁又能保证伟大的天朝能干出什么符合核心主义价值观的事情来呢?

在后台里新增收藏夹文章
编辑主题里的functions.php

  1. function collect_register() {

  2.         $link_labels = array(
  3.                 'name'               => '收藏夹',
  4.                 'singular_name'      => '收藏夹',
  5.                 'add_new'            => '新建收藏网站',
  6.                 'add_new_item'       => '新建一个收藏网站',
  7.                 'edit_item'          => '编辑收藏网站',
  8.                 'new_item'           => '新收藏网站',
  9.                 'all_items'          => '所有收藏夹',
  10.                 'view_item'          => '查看收藏夹',
  11.                 'search_items'       => '搜索收藏夹',
  12.                 'not_found'          => '没有找到相关网站',
  13.                 'not_found_in_trash' => '回收站里面没有相关网站',
  14.                 'parent_item_colon'  => '',
  15.                 'menu_name'          => '收藏夹'
  16.         );

  17.         $args = array(
  18.                 'labels'        => $link_labels,
  19.                 'description'   => '',
  20.                 'public'        => true,
  21.                 'menu_position' => 5,
  22.                 'menu_icon'         => 'dashicons-tag', //图标
  23.                 'supports'      => array( 'title', 'editor', 'thumbnail', 'excerpt', 'comments' ),
  24.                 'has_archive'   => true
  25.         );
  26.         //collect: 文章类型名称
  27.         register_post_type( 'collect' , $args );
  28. }
  29. add_action('init', 'collect_register');
复制代码

操作后,你就会在管理界面里发现了一个收藏夹功能



新增关于收藏夹的分类
同样还是在functions.php里

  1. //增加分类
  2. function collect_class() {
  3.         $labels = array(
  4.                 'name'              => '收藏夹分类',
  5.                 'singular_name'     => '收藏夹分类',
  6.                 'search_items'      => __( '搜索收藏夹分类' ),
  7.                 'all_items'         => __( '所有收藏夹分类' ),
  8.                 'parent_item'       => __( '该收藏夹分类的上级分类' ),
  9.                 'parent_item_colon' => __( '该收藏夹分类的上级分类:' ),
  10.                 'edit_item'         => __( '编辑收藏夹分类' ),
  11.                 'update_item'       => __( '更新收藏夹分类' ),
  12.                 'add_new_item'      => __( '添加新的收藏夹分类' ),
  13.                 'new_item_name'     => __( '新收藏夹分类' ),
  14.                 'menu_name'         => __( '收藏夹分类' ),
  15.         );
  16.         $args = array(
  17.                 'labels' => $labels,
  18.                 'hierarchical' => true,
  19.         );
  20.         //collect: 文章类型名称
  21.         //collect_category: 文章分类名称
  22.         register_taxonomy( 'collect_category', 'collect', $args );
  23. }
  24. add_action( 'init', 'collect_class', 0 );
复制代码

新增一个分类模板
在模板的目录下新建一个 taxonomy-collect_category.php 文件
这个是新增文章类型的模板,格式为:taxonomy-文章类型名称_category.php

然后就可以愉快的写正常的文章循环了,以下是我的收藏夹循环,可根据代码自行调整:

taxonomy-collect_category.php

  1. <?php get_header(); ?>
  2.   <main class="main-page">
  3.     <div class="main-page-banner">
  4.         <div class="banner-con">
  5.             <h1 class="title"><?php echo '收藏夹' ?></h1>
  6.             <p><?php echo '站长的一些足迹' ?></p>
  7.         </div>
  8.     </div>
  9.     <div class="layui-container main-collect">
  10.         <div class="layui-row">
  11.             <div class="layui-col-md2">
  12.                 <div class="left-nav">
  13.                     <div class="tt">收藏夹分类</div>
  14.                     <div class="nav-list">
  15.                         <?php wp_nav_menu( array( 'theme_location' => 'collect_menu' )); ?>
  16.                     </div>
  17.                 </div>
  18.             </div>
  19.             <div class="layui-col-md10">
  20.                 <div class="layui-row layui-col-space15">
  21.                     <?php get_template_part( 'template-parts/page/collect', get_post_format() ); ?>
  22.                 </div>
  23.                 <div class="layui-row main-page-nav">
  24.                   <div class="layui-col-md12">
  25.                     <?php
  26.                       the_posts_pagination();
  27.                     ?>
  28.                   </div>
  29.                 </div>
  30.             </div>
  31.         </div>
  32.     </div>
  33.   </main>
  34. <?php get_footer(); ?>
复制代码

template-parts/page/collect 目录下的 collect.php

注:wordpress这个模板功能很强大,可以在所有文件内任意调用文件,我这里就是在主题目录下新建了template-parts目录,接着将每个栏目的核心循环文件都放在这里,方便其他页面可以直接复用。

  1. <?php
  2.     //获取页面page用于翻页
  3.     $limit = (get_query_var('posts_per_page')) ? get_query_var('posts_per_page') : get_option('posts_per_page');
  4.     $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
  5.     //分类
  6.     $args = array(
  7.         'limit' => $limit,
  8.         'paged' => $paged,
  9.         'post_type' => 'collect',
  10.         'order' => 'DESC',
  11.         'posts_per_page' => 48,
  12.     );
  13.     query_posts($args);
  14.    
  15.         if( have_posts() ){
  16.                 while( have_posts() ){
  17.             the_post();
  18.             ?>
  19.             <div class="layui-col-md3 layui-col-xs6">
  20.                 <a href="<?php the_field('web_url') ?>" target="_blank">
  21.                     <div class="post-card">
  22.                         <div class="logo-con">
  23.                             <img class="logo" src="<?php the_field('web_logo') ?>">
  24.                             <div class="title"><?php the_title(); ?></div>
  25.                             <div class="introduction"><?php the_field('web_introduction') ?></div>
  26.                         </div>
  27.                     </div>
  28.                 </a>
  29.             </div>
  30.       <?php
  31.                 }
  32.     }

  33.     wp_reset_postdata();
  34.   
  35. ?>
复制代码
回复

使用道具 举报

670

主题

785

帖子

8273

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8273
沙发
 楼主| 发表于 2021-6-3 08:49:31 | 只看该作者
附赠: wordpress官方图标库 https://developer.wordpress.org/resource/dashicons/
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|5ucms.com

GMT+8, 2024-6-16 13:33 , Processed in 0.046875 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表