百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

真香,30天做一套wordpress主题(第4天):首页主体内容

bigegpt 2024-09-24 07:34 4 浏览

欢迎来到《真香,30天做一套wordpress主题》系列文章,我们的目标是(没有蛀牙!)花上30天的时间闭关修炼,建立一套全新的wordpress主题,如果你看到的第一篇文章不是《基础框架搭建》,建议你关注我们(数字江湖异志录),从该系列的第一篇开始阅读。

我们将尽量保持文章的循序渐进和通俗易懂,请确保自己已经掌握了那一篇文章的全部内容时才选择跳过,不然可能会错过关键的信息噢~

这里我们假定你已经知晓了以下基础知识,这些基础知识对理解文章内容是至关重要的:

1. HTML/CSS/JS基础

2. PHP基础

3. 如何使用Wordpress

4. 如何搭建web环境

如果你已经知晓了以上基础知识,恭喜你,本系列的任何文章内容对你而言都没有什么难度。

主体框架

我们把首页的主体区域划分成三个区域:

1. 文章列表

2. 右侧边栏

3. 公共底部

现在我们把DOM结构建立好:

????????<main>

????????????<div?class="main-container">

????????????</div>

????????????<div?class="sidebar">

????????????</div>

????????</main>

????????<footer>

????????????<div?class="footer-container">

????????????</div>

????????</footer>

然后控制好宽度,添加一个背景色进行初步区分:

???????????/*?内容区域?*/

????????????main?{

????????????????width:?62.5vw;

????????????????display:?flex;

????????????????margin:?0?auto;

????????????????justify-content:?space-between;

????????????}

????????????.main-container?{

????????????????width:?42.1875vw;

????????????????height:?26.0417vw;

????????????????background:?lightgrey;

????????????}

????????????.sidebar?{

????????????????width:?17.1875vw;

????????????????height:?26.0417vw;

????????????????background:?lightyellow;

????????????}

????????????/*?公共底部?*/

????????????footer?{

????????????????width:?100vw;

????????????????height:?16.6667vw;

????????????????background:?lightblue;

????????????}

????????????.footer-container?{

????????????????width:?62.5vw;

????????????}

那么看起来我们的页面就是这个样子了:

现在我们把文章列表调出来:

???????????<?php?while?(have_posts())?:?the_post();??>

????????????????<!--?article?-->

????????????????<article?id="post-<?php?the_ID();??>"?<?php?post_class();??>>

????????????????????<!--?post?thumbnail?-->

????????????????????<?php?if?(?has_post_thumbnail())?:?//?Check?if?thumbnail?exists??>

????????????????????????<a?href="<?php?the_permalink();??>"?title="<?php?the_title();??>">

????????????????????????????<?php?the_post_thumbnail(array(120,120));?//?Declare?pixel?size?you?need?inside?the?array??>

????????????????????????</a>

????????????????????<?php?endif;??>

????????????????????<!--?/post?thumbnail?-->

????????????????????<!--?post?title?-->

????????????????????<h2>

????????????????????????<a?href="<?php?the_permalink();??>"?title="<?php?the_title();??>"><?php?the_title();??></a>

????????????????????</h2>

????????????????????<!--?/post?title?-->

????????????????????<!--?post?details?-->

????????????????????<span?class="date"><?php?the_time('F?j,?Y');??>?<?php?the_time('g:i?a');??></span>

????????????????????<span?class="author"><?php?_e(?'Published?by',?'html5blank'?);??>?<?php?the_author_posts_link();??></span>

????????????????????<span?class="comments"><?php?if?(comments_open(?get_the_ID()?)?)?comments_popup_link(?__(?'Leave?your?thoughts',?'html5blank'?),?__(?'1?Comment',?'html5blank'?),?__(?'%?Comments',?'html5blank'?));??></span>

????????????????????<!--?/post?details?-->

????????????????????<?php?

????????????????????????add_filter('excerpt_more',?function(){

????????????????????????????return?'...';

????????????????????????});

????????????????????????echo?get_the_excerpt();

?????????????????????>

????????????????????<?php?edit_post_link();??>

????????????????</article>

????????????????<!--?/article?-->

????????????<?php?endwhile;??>

这里需要注意的是,我们需要在循环中把文章列表的基本信息输出,包括题图、标题、分类、日期、概览等。

嗯嗯,没有题图显示出来,这可不好,我们在functions.php里把题图功能的主题支持开启:

function?theme_support()?{

????add_theme_support('post-thumbnails');

}

add_action(?'after_setup_theme',?'theme_support'?);

但是这样页面还是没有题图,因为我们压根就没有设置过题图/笑哭,那现在怎么办呢?我们在functions里写一个方法,如果没有题图,则取文章内的第一张图:

function?my_post_thumbnail()?{

????$img_url?=?wp_get_attachment_url(get_post_thumbnail_id());

????if?(!$img_url)?{

????????$post??=?get_post();

????????//?search?for?img?src=""

????????preg_match_all(?'/<img.+src=[\'"]([^\'"]+)[\'"].*>/i',?$post->post_content,?$matches?);

????????$img_url?=?isset(?$matches[1][0]?)???$matches[1][0]?:?null;

????????//?search?for?style?background?url(cover?image?block)

????????if?(!$img_url)?{

????????????preg_match_all(?'/(?:url\([\'\"]?)(.*?(\.png|\.jp[e]?g))(?:[\'\"]?\))/i',?$post->post_content,?$matches?);

????????????$img_url?=?isset(?$matches[1][0]?)???$matches[1][0]?:?null;

????????}

????}

????return?$img_url;

}

当然了,为了增加用户的选择性,后期我们把这个取第一张图片的功能在后台主题自定义里弄个开关参数,让用户可以关闭这个功能,这样就可以不在列表里显示文章里的图片。

现在我们开始整理整理列表信息结构,去除一些无用的内容,按照我们需要的结构整理DOM,首先我们把题图显示出来,这里需要注意我们使用了AMP技术,无法直接使用img标签,而应该使用amp-img标签。

??????????????<?php?if?($thumb?=?my_post_thumbnail()):??>

????????????????<div?class="title-img">

????????????????????<amp-img?class="contain"

????????????????????????src="<?php?echo?$thumb?>"

????????????????????????layout="fill"

????????????????????>

????????????????????</div>

????????????????</amp-img>??

????????????????<?php?endif;??>?

然后加上css让它自适应宽高,这里我们用了object-fit:cover属性让图片自动裁剪保持比例(不变形):

???????????.list-box?{

????????????????width:?100%;

????????????????display:?flex;

????????????????flex-direction:?column;

????????????}

????????????.title-img?{

????????????????width:?42.1875vw;

????????????????height:?15.625vw;

????????????????position:?relative;

????????????}

????????????.title-img?amp-img.contain?img?{

????????????????object-fit:?cover;

????????????}

现在我们的页面看起来就像这样:

我们现在完成文章所属分类和标题:

??????????????<div?class="post-info">

????????????????????<?php?$category?=?get_the_category();echo?'<a?class="post-cate"?href="'.get_category_link($category[0]->term_id).'">'.$category[0]->cat_name.'</a>';??>

????????????????????<h2?class="post-title">

????????????????????????<a?href="<?php?the_permalink();??>"><?php?the_title();??></a>

????????????????????</h2>

????????????????????<div?class="title-split">

????????????????????</div>

???????????????</div>?

再加上CSS,这里我们使用了text-transform: uppercase;让英文标题字母全部大写,现在我们的页面看起来像这个样子:

接下来我们输出文章的摘要信息,一般就是截取文章头部的一段文字:

????????????????????<div?class="post-excerpt">

????????????????????????<?php?echo?get_the_excerpt()??>

????????????????????</div>

但是这样输出的话,excerpt末尾的省略符号是[…]这样的,我们的期望是…,我们又跑到functions.php里对这个尾部进行定义:

//?setting?excerpt

add_filter('excerpt_more',?function(){

????return?'...';

});

这样我们的文章摘要就是像这样了:

这里通过传参给get_the_excerpt方法,还可以控制摘要的字数。

现在我们加上CSS,就得到了这样的页面:

目前为止进展顺利,但是我们还有许多工作要做,今天就先到这里啦~~

总结和预告

今天我们大致实现了首页的文章列表,明天我们将引入新的元素——iconfont,使用iconfont我们让首页的文章列表完成度达到100%,这包括按钮、评论数等信息,还有最重要的,程序员的最爱:分页。

如果你喜欢这个系列的文章,赶快关注我们(数字江湖异志录)吧,不要错过后续的更多干货噢。

相关推荐

5分钟调色大片的方法(5分钟调色大片的方法有哪些)

哈喽大家好。在大家印象中一定觉得ps非常难学非常难。大家不要着急,小编的教学都是针对ps零基础的同学的,而且非常实用哦。只要大家跟着图文练习一两遍,保证大家立马学会~!好了,废话少说,下面开始我们今天...

闪白特效原来是这么用的(闪白特效怎么使用)

作者|高艳侠订阅|010-86092062闪白特效是影视作品中应用比较多的效果之一,那么具体该在哪些场景使用闪白特效?具体该如何操作?下面就以AdobePremiere(以下简称PR)为例,...

ppt常用小图标去哪里找?3个矢量素材网站推荐!

ppt是一个注重可视化表达的演示载体,除了高清图片,ppt中另一类常用的素材是各种小图标,也叫矢量图标,巧妙运用小图标能提升整体美观度和表现力,那么ppt常用小图标去哪里找呢?为方便各位快速找到合适的...

有什么好用的截图录屏工具?试试这9款

经常有朋友反馈苦于缺乏截屏和录屏的趁手工具,本期我们分享几个相当好用的截屏和录屏工具,希望能帮到大家。ScreenToGifScreenToGif是一款免费且开源的录屏工具。此款工具最大的特点是可以...

配色苦手福音!专业快速色环配色PS插件

今天橘子老师给的大家介绍的是一款快速配色的插件,非常强大配色苦手福音来啦!(获取方式见文末)【插件介绍】配色在后期设计中占有主导地位,好的配色能让作品更加抢眼Coolorus这款专业的配色插件,能够...

如何用PS抠主体?(ps怎么抠主体)

1.主体法抠图-抠花苞和花梗导入一张荷花苞的照片,点击上图中顶部“选择”菜单栏,下拉单击“主体”。可以看到,只有花苞被选中,但是花梗并没有被选中。接下来单击上图中左侧工具栏的“快速选择工具”,上图中顶...

2799元的4K电视,有保障吗?(买4k电视机哪个品牌好)

在上一期《电脑报》的3·15专题报道中,我们揭露了一款不靠谱的42英寸4K智能电视——TCLD42A561U。这款售价2699元的4K智能电视不仅4K画质方面存在严重问题,而且各种功能和应用体验也不理...

苹果电脑的Touch Bar推出一段时间了 这款工具可以帮你开发适用于它的APP

距离苹果推出带有TouchBar的MacBookPro已经有一段时间了,除了那些像Adobe、Google和Microsoft大公司在开发适用于TouchBar的应用之外,其实还有很多独立的开...

如魔法般吸取颜色的桌灯(如魔法般吸取颜色的桌灯叫什么)

色彩为生活带来的感官刺激,逐渐被视为理所当然。一盏桌灯运用它的神奇力量,将隐藏于物件中的颜色逐一释放,成为装点环境的空间魔法师。ColorUp是一款可以改变颜色的吸色台灯,沿用传统灯泡的造型,融入了拾...

一篇文章带你用jquery mobile设计颜色拾取器

【一、项目背景】现实生活中,我们经常会遇到配色的问题,这个时候去百度一下RGB表。而RGB表只提供相对于的颜色的RGB值而没有可以验证的模块。我们可以通过jquerymobile去设计颜色的拾取器...

ps拾色器快捷键是什么?(ps2019拾色器快捷键)

ps拾色器快捷键是什么?文章末尾有获取方式,按照以下步骤就能自动获得!学会制作PS特效需要一定程度的耐心和毅力。初学者可以从基本的工具和技术开始学习,逐渐提高他们的技能水平。同时,观看更多优秀的特效作...

免费开源的 Windows 截图录屏工具,支持 OCR 识别和滚动截图等

功能很强大、安装很小巧的免费截图、录屏工具,提供很多使用的工具来帮我么能解决问题,推荐给大家。关于ShareXShareX是一款免费的windows工具,起初是一个小巧的截图工具,经过多年的迭...

入门到精通系列PS教程:第13篇 · 拾色器、颜色问题说明及补充

入门到精通系列PS教程:第13篇·拾色器、颜色问题说明及补充作者|侯潇问题说明我的第12篇教程里,有个小问题没有说清楚。要说是错误,又不算是错误,只是没有说准确。写完那篇教程后,因为已经到了深...

PS冷知识:用吸管工具吸取屏幕上的任意颜色

今天,我们给大家介绍PS中的一个冷知识:用吸管工具可以吸取屏幕上的任意颜色。其实,操作起来是非常简单的。大多数情况下,我们认为,PS的吸管工具只能吸取PS软件作图区域范围内的颜色,最多加上画布四周的...

Windows 11 将提供内置颜色选择器工具

Windows11内置了颜色选择器,可以扫描并识别屏幕上的颜色并生成颜色代码。此外,微软还利用人工智能技术,让屏幕上的文本扫描和选择变得更加便捷。这两项功能均已在SnippingToolv1...