2015年10月13日星期二

一次“鬼上身”的经历

10月3号陪老婆回老家参加她妹的婚礼,晚上就在她弟弟家睡觉。

睡到大概5点半的样子,忽然觉得一阵气紧,身体一阵痉挛,出不了气,于是大口呼吸,想睁开肯却也睁不开,但我明明看到眼前有这个房间的事物,还有一个尖脸的人影(或者说是鬼影)从左往右飘过来,我紧张得很,马上想坐起来,可是双手确实被一只大手,肉乎乎,软软的大手牢牢压住,动弹不得,双脚肌肉也是僵硬的,动也动不了;

我想起睡在左边的老婆,可是就是喊不出来,声音就在喉咙里打转。。。。我以为要被鬼掐死了,怕死了;

马上又想到鬼是怕口水的,于是想吐口水出来想把鬼赶跑,我使劲吐,使劲吐,但只有一星半点的口水从嘴里吐出来,粘到嘴唇上,似乎一点用的没有。

就这样我起又起不来,动不了,只有拼命吐口水,尝试喊我旁边的老婆,僵持了好几分钟的样子;终于在一声鸡叫后,我的身体一下子松弛了下来,我反应了一下,确实好像全身松绑了一样;我马上又喊我旁边的老婆,一下就喊出来了,喊了两声,老婆答应了我,我的眼睛也可以睁开了。接着我的身段也可以活动了。。。。好像一切都过去了,我终于缓过神来了。。。

我看到睡在我和我老婆中间的女儿,生怕鬼又找上她,赶紧去喊她,喊了两声,女儿也答应了,这下我才终于放下来心来;应该没事了。

不知道我这个真的是鬼上身,还是半梦半醒的恶梦,太过于真实,我真的开始怀疑这个世界是不是真的有鬼了。

 

2015年10月9日星期五

Chrome设备模式模拟手机效果



 



我想很多前端或者需要做一些这类工作的设计师也许会通过缩放浏览器窗口来达到查看页面效果,但是某些的界面效果可能无法查看必须得用真机测试才行。例如下拉加载之类的或者手势操作,如果你的公司是那种很小的小公司连测试机都没有的,那么这个玩意就起作用了。
开启了这个功能之后你的浏览器将支持各种手势操作。下拉刷新上拉加载之类的。。完全全变成了移动设备的操作模式



当然你的鼠标滚轮和键盘什么的还是有用的,开了这个模式之后鼠标会变成一个小黑点的
Gif↓



要打开这个玩意只要打开你的Chrome,然后按F12就得了 或者可以执行菜单——工具——开发者工具



打开之后,点击这个移动设备的小图标



注意这个图标好像是Chrome 38才有的。如果你的版本比我低的话可能会没有这个功能。



先来简单的说一下~拖动这里的两块东西能任意调节设备屏幕大小



接着来看上面橙色部分的选项,这个是选择各种要模拟的设备



亚马逊Kindle、苹果、谷歌Nexus、黑莓、HTC、LG、诺鸡鸭、摩托罗拉、三星、索尼。。。甚至Notebook都有。。。



下面的是当前设备的显示屏像素



去掉前面的这个勾勾,或者点击这个删除的按钮,网页将会回到你现在的浏览器显示大小



点这个还能快速切换横屏竖屏



这个是当前模拟的设备的像素比,例如:iPhone3GS是1、iphone4是2、iPhone6是3....



如果你在操作的时候遇到这个警告,那么你需要刷新下网页才能看到实际的显示效果



这里的这个Fit是如果你选择的模拟设备像素的显示范围超过了你的浏览器框框,那么就会根据你当前的显示器高度和宽度自适应的缩放显示比例。去掉勾选就是实际像素的显示了。



这个按钮是媒体查询



  • 蓝色的是小于某个像素的媒体查询

  • 绿色的是间于某两个像素之间的媒体查询

  • 橙色的是大于某个像素的媒体查询


(以下的测试网站为http://www.alessioatzeni.com/



可以看到这里有各种不同的区域范围,也就是说每个区域内的网页示效果都是不一样的,有多少行应该就是代表这个网页针对不同的分辨率的设备做了多少种自适应的CSS了。这个在浏览学习人家的响应式网页的时候你可以看看别人是怎么做的。

点击这一行行的媒体查询,可以将当前的网页显示大小快速的切换到这个媒体查询的屏幕大小区间内,第一次的点击会切换到所点击区间的屏幕最小值



再次点击则会切换到这个区间的最大值



然后我们来看看右边蓝色的部分 第一个Network貌似是用来模拟网络环境的



你可以模拟各种网络环境以测试网页的加载速度,甚至可以模拟断网的状态...



下面的这个UA是浏览器User Agent(用户代理)


什么是User Agent?


User Agent中文名为用户代理,是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA。它是一个特殊字符串头,是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识。通过这个标识,用户所访问的网站可以显示不同的排版从而为用户提供更好的体验或者进行信息统计;例如用手机访问谷歌和电脑访问是不一样的,这些是谷歌根据访问者的UA来判断的。UA可以进行伪装。 浏览器的UA字串的标准格式:浏览器标识 (操作系统标识; 加密等级标识; 浏览器语言) 渲染引擎标识版本信息。但各个浏览器有所不同。

简单来说用这个你就能把你的浏览器装成各种个样的浏览器和移动设备了。

这个其实其他的浏览器也有一样的功能,不过某些功能感觉没有Chrome的方便 例如搜狗浏览器,同样按F12打开开发者工具后,点击开发者工具右上方的按钮打开抽屉。在Emulation选项卡里面可以找到设备模拟



不过要点击Emluate按钮才会生效



Opera的话基本和Chrome一样



Firefox点下图的图标也可以(我的是开发者版)



不过能选的功能就感觉比较简单了

选项从左到右分别是:

  • 离开响应式设计视图

  • 模拟设备分辨率

  • 旋屏

  • 模拟触控

  • 截屏




IE的话。。。默认只有WinPhone,感觉还是直接调浏览器大小吧。。。



Safari暂时没找到。。

最后,虽然这个能模拟各种各样的移动设备,但是由于不同机型不同浏览器之间的差异,实际的显示效果可能会有一点差异,但是一般情况下是没有太大问题的。这个功能也加速了移动网页的样式调整,以及手机浏览器上不能查看代码的问题。

 

原文地址:http://www.zcool.com.cn/article/ZMTE5OTY0.html

2015年10月8日星期四

WordPress常用标签代码调用写法

wordpress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL 数据库的服务器上架设自己的网志,插件众多,易于扩充功能。安装和使用都非常方便。目前 WordPress 已经成为主流的 Blog 搭建平台。这个网站就用的是WordPress构建的。

WordPress模板基本文件

style.css 样式表文件

index.php 主页文件

single.php 日志单页文件

page.php 页面文件

archvie.php 分类和日期存档页文件

searchform.php 搜索表单文件

search.php 搜索页面文件

comments.php 留言区域文件(包括留言列表和留言框)

404.php 404错误页面

header.php 网页头部文件

sidebar.php 网页侧边栏文件

footer.php 网页底部文件

WordPress Header头部 PHP代码

注: 也就是位于<head>和</head>之间的PHP代码


<?php bloginfo(‘name’); ?> 网站标题
<?php wp_title(); ?> 日志或页面标题

<?php bloginfo(‘stylesheet_url’); ?> WordPress主题样式表文件style.css的相对地址

<?php bloginfo(‘pingback_url’); ?> WordPress博客的Pingback地址

<?php bloginfo(‘template_url’); ?> WordPress主题文件的相对地址

<?php bloginfo(‘version’); ?> 博客的Wordpress版本

<?php bloginfo(‘atom_url’); ?> WordPress博客的Atom地址

<?php bloginfo(‘rss2_url’); ?> WordPress博客的RSS2地址

<?php bloginfo(‘url’); ?> WordPress博客的绝对地址

<?php bloginfo(‘name’); ?> WordPress博客的名称

<?php bloginfo(‘html_type’); ?> 网站的HTML版本

<?php bloginfo(‘charset’); ?> 网站的字符编码格式



WordPress 主体模板 PHP代码


<?php the_content(); ?> 日志内容
<?php if(have_posts()) : ?> 确认是否有日志

<?php while(have_posts()) : the_post(); ?> 如果有,则显示全部日志

<?php endwhile; ?> 结束PHP函数”while”

<?php endif; ?> 结束PHP函数”if”

<?php get_header(); ?> header.php文件的内容

<?php get_sidebar(); ?> sidebar.php文件的内容

<?php get_footer(); ?> footer.php文件的内容

<?php the_time(‘m-d-y’) ?> 显示格式为”02-19-08″的日期

<?php comments_popup_link(); ?> 显示一篇日志的留言链接

<?php the_title(); ?> 显示一篇日志或页面的标题

<?php the_permalink() ?> 显示一篇日志或页面的永久链接/URL地址

<?php the_category(‘, ‘) ?> 显示一篇日志或页面的所属分类

<?php the_author(); ?> 显示一篇日志或页面的作者

<?php the_ID(); ?> 显示一篇日志或页面的ID

<?php edit_post_link(); ?> 显示一篇日志或页面的编辑链接

<?php get_links_list(); ?> 显示Blogroll中的链接

<?php comments_template(); ?> comments.php文件的内容

<?php wp_list_pages(); ?> 显示一份博客的页面列表

<?php wp_list_cats(); ?> 显示一份博客的分类列表

<?php next_post_link(‘ %link ‘) ?> 下一篇日志的URL地址

<?php previous_post_link(‘%link’) ?> 上一篇日志的URL地址

<?php get_calendar(); ?> 调用日历

<?php wp_get_archives() ?> 显示一份博客的日期存档列表

<?php posts_nav_link(); ?> 显示较新日志链接(上一页)和较旧日志链接(下一页)

<?php bloginfo(‘description’); ?> 显示博客的描述信息



其它的一些Wordpress模板代码


/%postname%/ 显示博客的自定义永久链接
<?php the_search_query(); ?> 搜索表单的值

<?php _e(‘Message’); ?> 打印输出信息

<?php wp_register(); ?> 显示注册链接

<?php wp_loginout(); ?> 显示登入/登出链接

<!–next page–> 在日志或页面中插入分页

<!–more–> 截断日志

<?php wp_meta(); ?> 显示管理员的相关控制信息

<?php timer_stop(1); ?> 显示载入页面的时间

<?php echo get_num_queries(); ?> 显示载入页面查询



1. wordpress调用最新文章

WordPress最新文章的调用可以使用一行很简单的模板标签wp_get_archvies来实现. 代码如下:

<?php get_archives(‘postbypost’, 10); ?> (显示10篇最新更新文章)
或者

<?php wp_get_archives(‘type=postbypost&limit=20&format=custom’); ?>


后面这个代码显示你博客中最新的20篇文章,其中format=custom这里主要用来自定义这份文章列表的显示样式。具体的参数和使用方法你可 以参考官方的使用说明- wp_get_archvies。(fromat=custom也可以不要,默认以UL列表显示文章标题。)

补充: 通过WP的query_posts()函数也能调用最新文章列表, 虽然代码会比较多一点,但可以更好的控制Loop的显示,比如你可以设置是否显示摘要。具体的使用方法也可以查看官方的说明。

2. wordpress调用随机文章


<?php
$rand_posts = get_posts(‘numberposts=10&orderby=rand’);

foreach( $rand_posts as $post ) :

?>

<!–下面是你想自定义的Loop–>

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

<?php endforeach; ?>



3. wordpress调用最新留言

下面是我之前在一个Wordpress主题中代到的最新留言代码,具体也记不得是哪个主题了。该代码直接调用数据库显示一份最新留言。其中 LIMIT 10限制留言显示数量。绿色部份则是每条留言的输出样式。


<?php
global $wpdb;

$sql = “SELECT DISTINCT ID, post_title, post_password, comment_ID,

comment_post_ID, comment_author, comment_date_gmt, comment_approved,

comment_type,comment_author_url,

SUBSTRING(comment_content,1,30) AS com_excerpt

FROM $wpdb->comments

LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =

$wpdb->posts.ID)

WHERE comment_approved = ’1′ AND comment_type = ” AND

post_password = ”

ORDER BY comment_date_gmt DESC

LIMIT 10″;

$comments = $wpdb->get_results($sql);

$output = $pre_HTML; foreach ($comments as $comment) {

$output .= “n<li>”.strip_tags($comment->comment_author)

.”:” . ” <a href=”” . get_permalink($comment->ID) .

“#comment-” . $comment->comment_ID . “” title=”on ” .

$comment->post_title . “”>” . strip_tags($comment->com_excerpt)

.”</a></li>”;

} $output .= $post_HTML;

echo $output;?>



4.wordpress调用相关文章

在文章页显示相关文章


<?php
$tags = wp_get_post_tags($post->ID);

if ($tags) {

$first_tag = $tags[0]->term_id;

$args=array(

‘tag__in’ => array($first_tag),

‘post__not_in’ => array($post->ID),

‘showposts’=>10,

‘caller_get_posts’=>1

);

$my_query = new WP_Query($args);

if( $my_query->have_posts() ) {

while ($my_query->have_posts()) : $my_query->the_post(); ?>

<li><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”<?php the_title_attribute(); ?>”><?php the_title();?> <?php comments_number(‘ ‘,’(1)’,’(%)’); ?></a></li>

<?php

endwhile;

}

}

wp_reset_query();

?>



5.wordpress调用指定分类的文章


<?php $posts = get_posts( “category=4&numberposts=10″ ); ?>
<?php if( $posts ) : ?>

<ul><?php foreach( $posts as $post ) : setup_postdata( $post ); ?>

<li>

<a href=”<?php the_permalink() ?>” rel=”bookmark” title=”<?php the_title(); ?>”><?php the_title(); ?></a>

</li>

<?php endforeach; ?>

</ul>

<?php endif; ?>



6.wordpress去评论者链接的评论输出


<?php
global $wpdb;

$sql = “SELECT DISTINCT ID, post_title, post_password, comment_ID,

comment_post_ID, comment_author, comment_date_gmt, comment_approved,

comment_type,comment_author_url,

SUBSTRING(comment_content,1,14) AS com_excerpt

FROM $wpdb->comments

LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =

$wpdb->posts.ID)

WHERE comment_approved = ’1′ AND comment_type = ” AND

post_password = ”

ORDER BY comment_date_gmt DESC

LIMIT 10″;

$comments = $wpdb->get_results($sql);

$output = $pre_HTML;

foreach ($comments as $comment) {

$output .= “ <li>”.strip_tags($comment->comment_author).”:” . ” <a href=”” . get_permalink($comment->ID) .

“#comment-” . $comment->comment_ID . “” title=”on ” .

$comment->post_title . “”>” . strip_tags($comment->com_excerpt).”</a></li>”;

}

$output .= $post_HTML;

echo $output;?>



7.wordpress调用含gravatar头像的评论输出


<?php
global $wpdb;

$sql = “SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved,comment_author_email, comment_type,comment_author_url, SUBSTRING(comment_content,1,10) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = ’1′ AND comment_type = ” AND comment_author != ‘郑 永’ AND post_password = ” ORDER BY comment_date_gmt DESC LIMIT 10″;

$comments = $wpdb->get_results($sql);

$output = $pre_HTML;

foreach ($comments as $comment)

{

$output .= “ <li>”.get_avatar(get_comment_author_email(‘comment_author_email’), 18). ” <a href=”” . get_permalink($comment->ID) . “#comment-” . $comment->comment_ID . “” title=”” . $comment->post_title . ” 上的评论”>”. strip_tags($comment->comment_author) .”: “. strip_tags($comment->com_excerpt) .”</a></li>”;

}

$output .= $post_HTML;

$output = convert_smilies($output);

echo $output;

?>


上面代码把comment_author的值改成你的ID,18是头像大小,10是评论数量。

 

8.wordpress调用网站统计大全

1、日志总数:

<?php $count_posts = wp_count_posts(); echo $published_posts = $count_posts->publish;?>


2、草稿数目:

<?php $count_posts = wp_count_posts(); echo $draft_posts = $count_posts->draft; ?>


 

3、评论总数:

<?php echo $wpdb->get_var(“SELECT COUNT(*) FROM $wpdb->comments”);?>


 

4、成立时间:

<?php echo floor((time()-strtotime(“2008-8-18″))/86400); ?>


 

5、标签总数:

<?php echo $count_tags = wp_count_terms(‘post_tag’); ?>


 

6、页面总数:

<?php $count_pages = wp_count_posts(‘page’); echo $page_posts = $count_pages->publish; ?>


 

7、分类总数:

<?php echo $count_categories = wp_count_terms(‘category’); ?>


 

8、链接总数:

<?php $link = $wpdb->get_var(“SELECT COUNT(*) FROM $wpdb->links WHERE link_visible = ‘Y’”); echo $link; ?>


 

9、用户总数:

<?php $users = $wpdb->get_var(“SELECT COUNT(ID) FROM $wpdb->users”); echo $users; ?>


 

10、最后更新:

<?php $last = $wpdb->get_results(“SELECT MAX(post_modified) AS MAX_m FROM $wpdb->posts WHERE (post_type = ‘post’ OR post_type = ‘page’) AND (post_status = ‘publish’ OR post_status = ‘private’)”);$last = date(‘Y-n-j’, strtotime($last[0]->MAX_m));echo $last; ?>


9.wordpress判断语句

is_single()

判断是否是具体文章的页面

is_single(’2′)

判断是否是具体文章(id=2)的页面

is_single(‘Beef Stew’)

判断是否是具体文章(标题判断)的页面

is_single(‘beef-stew’)

判断是否是具体文章(slug判断)的页面

comments_open()

是否留言开启

pings_open()

是否开启ping

is_page()

是否是页面

is_page(’42′)

id判断,即是否是id为42的页面

is_page(‘About Me’)

判断标题

is_page(‘about-me’)

slug判断

is_category()

是否是分类

is_category(’6′)

id判断,即是否是id为6的分类

is_category(‘Cheeses’)

分类title判断

is_category(‘cheeses’)

分类 slug判断

in_category(’5′)

判断当前的文章是否属于分类5

is_author()

将所有的作者的页面显示出来

is_author(’1337′)

显示author number为1337的页面

is_author(‘Elite Hacker’)

通过昵称来显示当前作者的页面

is_author(‘elite-hacker’)

下面是通过不同的判断实现以年、月、日、时间等方式来显示归档

is_date()

is_year()

is_month()

is_day()

is_time()

判断当前是否是归档页面

is_archive()

判断是否是搜索

is_search()

判断页面是否404

is_404()

判断是否翻页,比如你当前的blog是http://domain.com 显示http://domain.com?paged=2的时候,这个判断将返 回真,通过这个函数可以配合is_home来控制某些只能在首页显示的界面,

例如:


<?php if(is_single()):?>
//这里写你想显示的内容,包括函数

<?php endif;?>

或者:

<?php if(is_home() && !is_paged() ):?>

//这里写你想显示的内容,包括函数

<?php endif;?>


10.wordpress非插件同步twitter

<?php
require_once (ABSPATH . WPINC . ‘/class-feed.php’);

$feed = new SimplePie();

$feed->set_feed_url(‘http://feeds.feedburner.com/agting′);

$feed->set_file_class(‘WP_SimplePie_File’);

$feed->set_cache_duration(600);

$feed->init();

$feed->handle_content_type();

$items = $feed->get_items(0,1);

foreach($items as $item) {

echo ‘<a target=”_blank” rel=”external nofollow” title=”Follow Me on Twitter” href=”http://twitter.com/agting″>@用户名</a>: ‘.$item->get_description();

}

?>


代码中的agting改成你的twitter用户名,改成你的名字。

另一种调用方法需要你的空间是国外主机:


<?php
// Your twitter username.

$username = “wange1228″;

// Prefix – some text you want displayed before your latest tweet.

// (HTML is OK, but be sure to escape quotes with backslashes: for example href=”link.html”)

// Suffix – some text you want display after your latest tweet. (Same rules as the prefix.)

$suffix = “”;

$feed = “http://search.twitter.com/search.atom?q=from:” . $username . “&rpp=1″;

function parse_feed($feed) {

$stepOne = explode(“<content type=”html”>”, $feed);

$stepTwo = explode(“</content>”, $stepOne[1]);

$tweet = $stepTwo[0];

$tweet = str_replace(“&lt;”, “<”, $tweet);

$tweet = str_replace(“&gt;”, “>”, $tweet);

return $tweet;

}

$twitterFeed = file_get_contents($feed);

echo stripslashes($prefix) . parse_feed($twitterFeed) . stripslashes($suffix);

?>


总结一下这个方法的特点:

1、非插件.

2、不用验证用户名和密码,也就是说你可以指定调用任何一个人的 tweet.

3、可以自定义 tweet 信息后显示的文字,就是 $suffix = “”; 这里.

4、只能调用最新的一条 tweet,刚好满足我的需求。

5、大概只有国外空间才能使用.(经我验证,确实如此)

11.wordpress 非插件调用评论表情


<!–smilies–>
<?php

function wp_smilies() {

global $wpsmiliestrans;

if ( !get_option(‘use_smilies’) or (empty($wpsmiliestrans))) return;

$smilies = array_unique($wpsmiliestrans);

$link=”;

foreach ($smilies as $key => $smile) {

$file = get_bloginfo(‘wpurl’).’/wp-includes/images/smilies/’.$smile;

$value = ” “.$key.” “;

$img = “<img src=”{$file}” alt=”{$smile}” />”;

$imglink = htmlspecialchars($img);

$link .= “<a href=”#commentform” title=”{$smile}” onclick=”document.getElementByIdx_x(‘comment’).value += ‘{$value}’”>{$img}</a>&nbsp;”;

}

echo ‘<div class=”wp_smilies”>’.$link.’</div>’;

}

?>

<?php wp_smilies();?>


将以上代码复制到 comments.php 中合适的位置。

微信内置浏览器中如何实现点击电话号码自动到拨号页面?

一般的web处理
1.一键拨号(同样也有一键发信息的功能):
<a href="tel:10086">马上拨打电话10086</a>

2.发送短信功能:
<a href="sms:10086">发送短信</a>

3、移动web页面自动探测电话号码
<meta name="format-detection" content="telephone=no">
<meta http-equiv="x-rim-auto-match" content="none">

4.使用wtai协议进行拨打电话。
<a href="wtai://wp//mc;10086">拨打10086 </a>  
<a href="wtai://wp/ap;10086;">存储</a>

一般建议采用这个方式。

关于微信页面会出现屏蔽的方式,所以采取以下解决方案

解决方法如下:
1、拨号的代码还是不变,和原先的一样,
2、打开拨号页面要做下处理,在网址后面增加一个锚节点mp.weixin.qq.com。
实例如下:
如:<a href="tel:10086">一键拨号</a> 上需要拨号代码,操作如下
在有这个代码的页面URl后边加上“#mp.weixin.qq.com” 如:tel:10086#mp.weixin.qq.com
实例代码:


<a href="tel:<?php the_field('agent')#mp.weixin.qq.com; ?>"><?php the_field('agent'); ?></a>

2015年10月5日星期一

自定义文章类型的文章不能显示在分类目录下的解决办法

一般来说我是使用Custom Post Type UI来新建文章类型的,所以此文章基于Custom Post Type UI.

其实Custom Post Type UI的帮助里面找得到解决办法,只是太啰嗦了,就直接上干货了

全部直接调用在function.php中加入以下代码:
function add_custom_types_to_tax( $query ) {
if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) {

// Get all your post types
$post_types = get_post_types();

$query->set( 'post_type', $post_types );
return $query;
}
}
add_filter( 'pre_get_posts', 'add_custom_types_to_tax' );



If you’d like to add only specific post types to listings of tags and categories you can replace the line:

$post_types = get_post_types();
with:

$post_types = array( 'post', 'your_custom_type' );

2015年10月1日星期四

WordPress主题制件笔记 (wordpress花园教程)

自定义字段插件:Advanced CustomFields

自定义联系表单插件:Contact Form 7

自定义文章类型插件:Custom Post Type UI

发邮件插件:WP-MAIL-SMTP

自定义文章页面:single-fxd.php

内容模版: template-parts/content.php(content-fxd.php,content-zidingyi.php)