文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

WordPress使用自定义文章类型实现任意模板的方法

2022-06-12 02:11

关注

本文实例讲述了WordPress使用自定义文章类型实现任意模板的方法。分享给大家供大家参考,具体如下:

这几天在搭建博客的时候,碰到了一个对我来说很棘手的问题。WordPress自带的文章类型只能使用他们特定的模版,而我由于想做一个心情时间轴的板块,所以只能自定义文章的类型,让他来支持我的这个模版。于是网上找资料,并且以插件的形式来表现,得到了如下的解决方案:

主要就是使用了register_post_type 函数

1、创建插件目录

新建一个文件夹用来存放插件文件,这里我就命名这个文件夹为myMood

2、创建php代码文件

在刚才创建的文件夹里面新建一个php文件,命名为myMood,用来书写插件代码

3、添加头部描述


复制代码代码如下:<?php

?>

4、注册自定义函数

在刚刚创建的php文件代码中,在?>前面添加函数:


复制代码代码如下:add_action( 'init', 'create_myMood' );

得到如下代码:


复制代码代码如下:<?php

add_action( 'init', 'create_myMood' );

?>

5、添加函数功能

把下面这段代码添加到 add_action( 'init', 'create_myMood' ); 的前面


复制代码代码如下:function create_lsxq() {

register_post_type( 'lsxq',

array(

'labels' => array(

'name' => '零散心情',

'singular_name' => 'lsxq',

'add_new' => '写心情',

'add_new_item' => '添加一条新心情',

'edit' => 'Edit',

'edit_item' => 'Edit lsxq',

'new_item' => 'New lsxq',

'view' => 'View',

'view_item' => 'View lsxq',

'search_items' => 'Search lsxq',

'not_found' => 'No lsxq found',

'not_found_in_trash' => 'No lsxq found in Trash',

'parent' => 'Parent lsxq'

),

'public' => true,

'menu_position' => 15,

'supports' => array( 'title', 'editor', 'comments', 'thumbnail' ),

'taxonomies' => array( '' ),

'menu_icon' => plugins_url( 'images/image.png', __FILE__ ),

'has_archive' => true

)

);

}

对 register_post_type 这个函数发出声明,它就为新的文章类型做好了各种管理功能。这个函数包括两个参数:第一个是定义了自定义文章类型的名字 ;第二个是一个数组,用来定义新的自定义文章类型的属性。

第一个参数很简单,大家自己领悟。这里简单说下地位个参数:

'public' => true 决定该文章类型在管理后台和前端的可见性

'menu_position' => 5 决定该文章类型菜单的位置

'supports' => array( 'title', 'editor', 'comments', 'thumbnail') 决定自定义文章类型的功能

'taxonomies' => array( '' ) 创建自定义分类,这里没有定义。

'menu_icon' => plugins_url( 'image.png', __FILE__ ) 显示管理菜单的图标,图标文件放在和插件同一目录,为16*16像素

'has_archive' => true 启用自定义文章类型的存档功能

请访问 register_post_type 了解更多关于该函数的参数细节。

6、创建一个该自定义文章类型的模版

打开刚刚的代码文件,在
复制代码代码如下:add_action( 'init', 'create_lsxq' );语句前面添加下面这一语句:


复制代码代码如下:add_filter( 'template_include', 'include_template_function', 1 );

7、实现该函数的功能


复制代码代码如下:function include_template_function( $template_path ) {

if ( get_post_type() == 'lsxq' ) {

if ( is_single() ) {

if ( $theme_file = locate_template( array ( 'single-lsxq.php' ) ) ) {

$template_path = $theme_file;

} else {

$template_path = plugin_dir_path( __FILE__ ) . '/single-lsxq.php';

}

}

}

return $template_path;

}

该代码段添加在下面语句的后面


复制代码代码如下:add_filter( 'template_include', 'include_template_function', 1 );

8、创建单页面模版single-lsxq.php

创建一个名字为single-lsqx.php的文件,主要代码段如下:


复制代码代码如下:<?php

$mypost = array( 'post_type' => 'lsxq', );

$loop = new WP_Query( $mypost );

?>

<?php while ( $loop->have_posts() ) : $loop->the_post();?>

<div class="item">

<h3> <span class="fr"><?php the_time('Y-n-j H:i') ?></span> </h3>

<div class="con">

<?php the_content(); ?>

</div>

</div>

<?php endwhile; ?>

现在,我们已经通过循环创建了一个基本的页面模板。这个  函数检索自定义文章类型的元素,并在循环中使用它们。现在自定义文章类型差不多就好了,剩下的就是css样式了。

上述代码可点击此处本站下载

希望本文所述对大家基于wordpress的网站建设有所帮助。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-开源
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯