因为网站有分享一些个人看过的感觉还不错的视频,然而目前所使用的 DUX 主题自带的两种页面分类页面(默认、产品)并不能很好地展示视频效果,所以决定自己写一份。因个人能力有限,写出来的不是太好,但也还凑合,于是决定分享出来,有相中的可以自取。先看下显示效果:

PC 端

移动端

大致就是这个样子,下面说下具体实现方式:

添加模板文件

新建一个名为 loop-video.php (当然你也可以修改为其他名称,这里仅因为我个人使用的主题需要命名的),将以下代码丢到该文件中。

<?php
/**
  * @name 视频分类页面模板
  * @author 蝈蝈要安静 | 一个不学无术的伪程序员
  * @copyright https://blog.quietguoguo.com/
  * @version 1.0.0
  */
?>
<div class="cat-video-main">
    <?php 
    if ( have_posts() ): 
        echo '<div class="cat-video-content">';
            while ( have_posts() ) : the_post();
                echo '<article class="cat-video-item">';
                    echo '<a target="_blank"  href="'.get_permalink().'">'.get_the_post_thumbnail().'</a>';							
                    echo '<h2><a target="_blank" href="'.get_permalink().'">'.get_the_title().'</a></h2>';
                    echo '<div>';
	
                    echo '<span><a target="_blank" href="'.get_permalink().'"><i class="fa fa-eye" aria-hidden="true"></i>  ('.(int) get_post_meta($post->ID, 'views', true).')</a></span>';
                    echo '<span><a href="'.get_comments_link().'"><i class="fa fa-comments-o"></i> ('.get_comments_number('0', '1', '%').')</a></span>';
							
                    echo '<span class="cat-video-author"><a  href="'.get_author_posts_url( get_the_author_meta( 'ID' ) ).'"><i class="fa fa-user-circle" aria-hidden="true"></i> '.get_the_author_meta( 'nickname' ).'</a></span>';
							
                    echo '</div>';
                echo '</article>';
            endwhile; 
            wp_reset_query();
        echo '</div>';
        _moloader('mo_paging');
    else:
        get_template_part( 'content-404' );
    endif; 
    ?>
</div>

新建完成后将文件丢到你的主题文件夹下,然后调用就可以了。

CSS 样式美化

将以下代码丢到你主题的样式文件里,一般为 style.css 文件中即可。DUX 主题需到 main.css 文件中。

/*  @name 视频分类模板样式文件  2019年01月06日  蝈蝈要安静 | https://blog.quietguoguo.com/  */
.cat-video-main{
    position:relative;
    margin: 15px 10px 25px;
    padding:0px;
    overflow: hidden;
}
.cat-video-content{position:relative;margin:0 3%;min-height:600px}

.cat-video-item{
    position:relative;
    display:inline-block;
    width:18%;
    margin:1%;
    padding:0px;
    vertical-align:bottom;
    text-align:left;
    background-color:#fff;
    border:1px solid #eee;
    border-radius: 9px;
    overflow:hidden;
}

.cat-video-item:hover{ border-color: #79d5ff;}

.cat-video-item h2{
    margin: 10px 10px 5px;
    font-size:14px;
    height: 40px;
    line-height:20px;
    overflow: hidden;
}

.cat-video-item div{
    height: 24px;
    margin: 10px 1px;
    line-height: 20px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.cat-video-item div span{
    margin: 5px 10px 10px;
    font-size:10px;
    height: 16px;
    line-height:16px;
    overflow: hidden;
    float: right;
}

.cat-video-author{
    float:left !important;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.cat-video-item a{margin:0px;width: 100% !important;display:block;overflow:hidden;border-radius: 0;padding-bottom: 0;}
.cat-video-item  a img{margin:0px;width: 100% !important;height: 100% !important;display:block;overflow:hidden;border-radius: 0;}
@media (max-width:1366px){
    .cat-video-item{width:23%}
}
@media (max-width:1024px){
    .cat-video-item{width:31%}
}
@media (max-width:768px){
    .cat-video-item{width:48%}
}
@media (max-width:480px){
    .cat-video-item div span{float: left;}
}

上面两个文件是此次主题修改的核心文件,大家针对自己主题稍微调整下应该就可以用了。下面就我目前使用的主题简单说下如何配置,你也可以作为修改自己主题的参考。

category.php 文件修改

DUX 主题的话,需修改 category.php 文件以加载我们的模板文件,具体修改方式为在代码 16 行位置处的数组函数中增加一个 video 项。修改后的代码为:

$loop_style = 'default';
if( !empty($meta_style) && in_array($meta_style, array('default', 'video','product')) ){
	$loop_style = $meta_style;
}

functions-theme.php 文件修改

加载模板后我们还需要设置后台选项选择我们的“视频”模板。在 functions-theme.php 文件中大约 1012 行位置处增加如下代码

<option value="video">视频</option>

修改后如下:

<select name="term_meta[style]" id="term_meta[style]" class="postform">
    <option value="default">默认</option>
    <option value="video">视频</option>
    <option value="product">产品</option>
</select>

在 1051 代码处增加如下代码:

<option value="video" '. ('video'==$meta_style?'selected="selected"':'') .'>视频</option>

修改后如下所示:

<select name="term_meta[style]" id="term_meta[style]" class="postform">
    <option value="default" '. ('default'==$meta_style?'selected="selected"':'') .'>默认</option>
    <option value="video" '. ('video'==$meta_style?'selected="selected"':'') .'>视频</option>
    <option value="product" '. ('product'==$meta_style?'selected="selected"':'') .'>产品</option>
</select>

如此,修改完成。