smarty半小时快速上手入门教程

本文讲述了smarty快速上手入门的方法,可以让读者在半小时内快速掌握smarty的用法。分享给大家供大家参考。具体实现方法如下:

一、smarty的程序设计部分:

在smarty的模板设计部分我简单的把smarty在模板中的一些常用设置做了简单的介绍,这一节主要来介绍一下如何在smarty中开始我们程序设计。下载Smarty文件放到你们站点中。

index.php代码如下:

 

<?php
/**
*
* @version $Id: index.php
* @package
* @author www.jb51.net
* @action 显示实例程序
*/
include_once("./Smarty/Smarty.class.php"); //包含smarty类文件 

$smarty = new Smarty(); //建立smarty实例对象$smarty
$smarty->templates("./templates"); //设置模板目录
$smarty->templates_c("./templates_c"); //设置编译目录
$smarty->cache("./cache"); //缓存目录
$smarty->cache_lifetime = 0; //缓存时间
$smarty->caching = true; //缓存方式

$smarty->left_delimiter = "{#";
$smarty->right_delimiter = "#}";
$smarty->assign("name", "zaocha"); //进行模板变量替换
$smarty->display("index.htm"); //编译并显示位于./templates下的index.htm模板
?>

二、解释smarty的程序

 

我们可以看到,smarty的程序部分实际就是符合php语言规范的一组代码,我们依次来解释一下:

1:/**/语句:

包含的部分为程序篇头注释。主要的内容应该为对程序的作用,版权与作者及编写时间做一个简单的介绍,这在smarty中不是必需的,但从程序的风格来讲,这是一个好的风格。

2:include_once语句:

它将安装到网站的smarty文件包含到当前文件中,注意包含的路径一定要写正确。

3:$smarty = new Smarty():

这一句新建一个Smarty对象$smarty,简单的一个对象的实例化。

4:$smarty->templates(""):

这一句指明$smarty对象使用tpl模板时的路径,它是一个目录,在没有这一句时,Smarty默认的模板路径为当前目录的templates目录,实际在写程序时,我们要将这一句写明,这也是一种好的程序风格。

5:$smarty->templates_c(""):

这一句指明$smarty对象进行编译时的目录。在模板设计篇我们已经知道Smarty是一种编译型模板语言,而这个目录,就是它编译模板的目录,要注意,如果站点位于linux服务器上,请确保

teamplates_c里定义的这个目录具有可写可读权限,默认情况下它的编译目录是当前目录下的templates_c,出于同样的理由我们将其明确的写出来。

6:$smarty->left_delimiter与$smarty->right_delimiter:

指明在查找模板变量时的左右分割符。默认情况下为"{"与"}",但在实际中因为我们要在模板中使用<script>,Script中的函数定义难免会使用{},虽然它有自己的解决办法,但习惯上我们将它重新定义

为"{#"与"#}"或是"<!--{"与"}-->"或其它标志符,注意,如果在这里定义了左右分割符后,在模板文件中相应的要使每一个变量使用与定义相同的符号,例如在这里指定为"<{"与"}>",htm模板中也要

相应的将{$name}变成<{$name}>,这样程序才可以正确的找到模板变量。

7:$smarty->cache("./cache"):

告诉Smarty输出的模板文件缓存的位置。上一篇我们知道Smarty最大的优点在于它可以缓存,这里就是设置缓存的目录。默认情况下为当前目录下的cache目录,与templates_c目录相当,在linux系统中

我们要确保它的可读可写性。

8:$smarty->cache_lifetime = 60 * 60 * 24:

这里将以秒为单位进行计算缓存有效的时间。第一次缓存时间到期时当Smarty的caching变量设置为true时缓存将被重建。当它的取值为-1时表示建立起的缓存从不过期,为0时表示在程序每次执行时缓

存总是被重新建立。上面的设置表示将cache_lifetime设置为一天。

9:$smarty->caching = 1:

这个属性告诉Smarty是否要进行缓存以及缓存的方式。它可以取3个值,0:Smarty默认值,表示不对模板进行缓存;1:表示Smarty将使用当前定义的cache_lifetime来决定是否结束cache;2:表示

Smarty将使用在cache被建立时使用cache_lifetime这个值。习惯上使用true与false来表示是否进行缓存。

10:$smarty->assign("name", "zaocha"):

该数的原型为assign(string varname, mixed var),varname为模板中使用的模板变量,var指出要将模板变量替换的变量名;其第二种原形为assign(mixed var),我们要在后面的例子详细的讲解这个成员函数的使用方法,assign是Smarty的核心函数之一,所有对模板变量的替换都要使用它。

11:$smarty->display("index.tpl"):

该函数原形为display(string varname),作用为显示一个模板。简单的讲,它将分析处理过的模板显示出来,这里的模板文件不用加路径,只要使用一个文件名就可以了,它路径我们已经在$smarty->templates(string path)中定义过了。

程序执行完后我们可以打开当前目录下的templates_c与cache目录,就会发现在下边多出一些%%的目录,这些目录就是Smarty的编译与缓存目录,它由程序自动生成,不要直接对这些生成的文件进行修改。

以上我简单的把Smarty程序中的一些常用的基本元素介绍了一下,在后边的例子中你可以看到将它们将被多次的使用。

三、模板说明

接下来介绍一个section循环块与foreach循环块,本来它应该属于模板部分,但是由于它们是smarty的精华所在,而且与smarty程序设计部分联系非常紧密,所以就在本节单独拿出来讲一下。

1: foreach:用于循环简单数组,它是一个选择性的section循环,它的定义格式为:

 

{foreach from=$array item=array_id}
{foreachelse}
{/foreach}

其中,from 指出要循环的数组变量,item为要循环的变量名称,循环次数由from所指定的数组变量的个数所决定。{foreachelse}用来当程序中传递过来的数组为空时的处理,下面是一个简单的例子:

 

模板文件:

example.htm页面如下:

 

foreach 输出一个“二维关联数组”的数据: 

{#foreach item=new from=$news#}

新闻编号:{#$new.id#}

新闻内容:{#$new.title#}

{#foreachelse#}
数据库中没有新闻输出!

{#/foreach#}

{foreach from=$newsArray item=newsID}
新闻编号:{$newsID}
新闻内容:{$newsTitle}
{foreachelse}
对不起,数据库中没有新闻输出!

{/foreach}

这是一个错误的不显示数据,本文做了更正。

 

程序文件:example.php如下:

 

<?php
/*********************************************
*
* 文件名: example.php
* 作 用: 显示实例程序2
*********************************************/
include_once("./Smarty/Smarty.class.php");
$smarty = new Smarty();
$smarty->templates("./templates");
$smarty->templates_c("./templates_c");
$smarty->cache("./cache");
$smarty->cache_lifetime = 0;
$smarty->caching = true;
$smarty->left_delimiter = "{#";
$smarty->right_delimiter = "#}";
$array[] = array("newsID"=>1, "newsTitle"=>"第1条新闻");
$array[] = array("newsID"=>2, "newsTitle"=>"第2条新闻");
$array[] = array("newsID"=>3, "newsTitle"=>"第3条新闻");
$array[] = array("newsID"=>4, "newsTitle"=>"第4条新闻");
$array[] = array("newsID"=>5, "newsTitle"=>"第5条新闻");
$array[] = array("newsID"=>6, "newsTitle"=>"第6条新闻");
//这是一个二维关联数组
$smarty->assign("newsArray", $array);
//编译并显示位于./templates下的index.htm模板
$smarty->display("example.htm");
?>

输入结果:example.php输出如下:

 

 

这里将输出一个数组: 

新闻编号:1

新闻内容:第1条新闻

新闻编号:2

新闻内容:第2条新闻

新闻编号:3

新闻内容:第3条新闻

新闻编号:4

新闻内容:第4条新闻

新闻编号:5

新闻内容:第5条新闻

新闻编号:6

新闻内容:第6条新闻

 

foreach还可以用foreachelse来匹配,用foreachelse来表示当传递给foreach的数组为空值时程序要执行的操作,具体的使用方法,请参考手册的说明。

2. section:

section的产生是为解决foreach的不足的,与foreach一样,它用于设计模板内的循环块,它较为复杂,可极大程序上满足程序需要,所以在程序中我习惯使用它而不使用foreach,基本原形为:

 

{section name = name loop = $varName[, start = $start, step = $step, max = $max, show = true]}

 

参数解释如下:

name: section的名称,不用加$

$loop: 要循环的变量,在程序中要使用assign对这个变量进行操作。

$start: 开始循环的下标,循环下标默认由0开始

$step: 每次循环时下标的增数

$max: 最大循环下标

$show: boolean类型,决定是否对这个块进行显示,默认为true
这里有个名词需要说明:

循环下标:实际它的英文名称为index,是索引的意思,这里我将它译成"下标",主要是为了好理解。它表示在显示这个循环块时当前的循环索引,默认从0开始,受$start的影响,如果将$start设为5,它也将从5开始计数,在模板设计部分我们使用过它,这是当前{section}的一个属性,调用方式为Smarty.section.sectionName.index,这里的sectionName指的是函数原型中的name属性。

{section}块具有的属性值,分别为:

1. index: 上边我们介绍的"循环下标",默认为0

2. index_prev: 当前下标的前一个值,默认为-1

3. index_next: 当前下标的下一个值,默认为1

4. first: 是否为第一下循环

5. last: 是否为最后一个循环

6. iteration: 循环次数

7. rownum: 当前的行号,iteration的另一个别名

8. loop: 最后一个循环号,可用在section块后统计section的循环次数

9. total: 循环次数,可用在section块后统计循环次数

10. show: 在函数的声明中有它,用于判断section是否显示

它们的具体属性大家可以参考手册,在程序中可灵活使用它的这些属性,模板部分我就使用过index属性,大家可以回过头去看看。

同样,{section}也可以配合使用{sectionelse},用来表示传入的数组变量为空时对模板进行的处理。

我们把上边的那个例子使用{section}来替代{foreach}来实现现样的功能,注意,在这个例子中我只将tpl模板中的{foreach}用{section}来实现,php程序文件中没有任何改动,同时加了{sectionelse}处理块:

example.tpl模板文件如下:

 

这里将输出一个数组: 

{section name=loop loop=$News}
新闻编号:{$News[loop].newsID}
新闻标题:{$News[loop].newsTitle}
{sectionelse}
对不起,没有任何新闻输入!
{/section}

 

example.php文件如下:

 

<?php
/********************************************* 

*

* 文件名: example7.php

* 作 用: 显示实例程序2

*********************************************/

include_once("./comm/Smarty.class.php");

$smarty = new Smarty();

$smarty->templates("./templates");

$smarty->templates_c("./templates_c");

$smarty->cache("./cache");

$smarty->cache_lifetime = 0;

$smarty->caching = true;

$smarty->left_delimiter = "{";

$smarty->right_delimiter = "}";

$array[] = array("newsID"=>1, "newsTitle"=>"第1条新闻");

$array[] = array("newsID"=>2, "newsTitle"=>"第2条新闻");

$array[] = array("newsID"=>3, "newsTitle"=>"第3条新闻");

$array[] = array("newsID"=>4, "newsTitle"=>"第4条新闻");

$array[] = array("newsID"=>5, "newsTitle"=>"第5条新闻");

$array[] = array("newsID"=>6, "newsTitle"=>"第6条新闻");

$smarty->assign("newsArray", $array);

//编译并显示位于./templates下的index.tpl模板

$smarty->display("example.tpl");

?>

example.php 输出文件如下:

 

这里将输出一个数组: 

新闻编号:1

新闻内容:第1条新闻

新闻编号:2

新闻内容:第2条新闻

新闻编号:3

新闻内容:第3条新闻

新闻编号:4

新闻内容:第4条新闻

新闻编号:5

新闻内容:第5条新闻

新闻编号:6

新闻内容:第6条新闻

这里的{section}块的对于变量的命名方式感觉有些别扭,不过没关系,你只要记住模板变量使用:

 

$loopName[name].var这种模式就行了,loopName为loop处赋予的变量名,[name]为name处赋予的字符串,.后为为你要在程序数组中设定要与值相对应的下标名称就行了。

好了,本文关于smarty程序设计学习指南就写到这里,对于一般的应用,这些知识已经够用了,其它的一些高级技巧大家请参看手册中的例子,此外相关的还有Smarty在实际应用中的例子,以php内置的mysql语句,phplib中的DB类,ADODB,Pear中DB类等等。

php查询mysql输出例子

< ?php
$sql="select * from content";
mysql_query($sql, $con);

$result = mysql_query($sql);
if ($result){
  echo "
    "; while($row = mysql_fetch_array($result)) { echo '
  • '.$row['id'].'|'.$row['title'].'|'.$row['desc'].'
  • '; } echo ""; } ?>

可口可乐和百事都在失去年轻消费者

可口可乐和百事可乐在相互争夺的过程中似乎找到了一些共同点,这两款可乐的粉丝们在受教育程度和政治倾向性上有着明显的差异,但是根据一家名为Connexity的电子商务和消费者分析公司提供的最新数据,他们的年龄都比较大了。

可口可乐的最大用户群在35岁到44岁之间,而百事可乐的最大用户群则在65岁以上,与此同时他们在18岁到24岁的人群中支持率都比较低。

 

可口可乐和百事可乐都将自己的饮料产品扩展到了苏打汽水之外,他们引入了小包装饮料来吸引不怎么喝苏打汽水的年轻群体。但是,Connexity公司内容总监罗切尔·拜丽丝(Rochelle Bailis)表示,他们都需要在18岁到24岁之间的人群中做得更好。

“可口可乐相较于百事可乐对于年轻人的吸引力更强,但是他们在吸引年轻消费者这件事上做得都不太好,”拜丽丝说道,“年轻消费者们对于健康更为看重,而可口可乐和百事可乐都在争取千年一代的消费群体,我不认为他们之中任何一家做到了完美。”

 

以下就是Connexity对于可口可乐和百事可乐一些相关市场数据的汇总:

1. 百事可乐在左派民主党人之中的支持率高出了12个百分点,但是在对政治不感兴趣的保守派和极端保守派中其支持率比对手分别低16%和11%。与此相反的是,可口可乐在温和共和党人和极端保守派中的支持率分别高出了21%和10%,但是他们在保守民主党人和左派民主党人中的支持率比对手分别低11%和10%。

2. 可口可乐的用户们拥有大学以上学历的比例较高,而百事可乐的用户们更偏向于只拥有高中学历。

3. 百事可乐的支持者们处于低收入水平的几率较大,他们平均年收入低于两万美元的几率比一般人要高出28%,而可口可乐的消费者们年收入低于两万美元的几率比一般人要低20%。

4. 百事可乐的消费者们自认为“看电视上瘾”几率一般人要高出16%,而可口可乐的消费者们自认为“看电视上瘾”的几率比一般人要低12%。

dedecms5.7后台发布文章提示“标题不能为空”的解决方法

有人发现在使用织梦dedecms5.7后台发布文章提示“标题不能为空”了,这个问题很怪我们都是从直接从官网下载的也有问题了,那么要如何解决呢.

问题症状:V5.7登录后台后,发布英文标题没问题,发布中文会提示“标题不能为空”.

问题根源:htmlspecialchars在php5.4默认为utf8编码,gbk编码字符串经 htmlspecialchars 转义后的中文字符串为空,也就是标题为空.

解决办法:给htmlspecialchars添加ENT_COMPAT ,’GB2312’参数修改编码默认值.

具体修改页面,代码如下:

1、dede/article_add.php 和 dede/article_edit.php

$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen));

改成
$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen),ENT_COMPAT ,'GB2312');

2、include/ckeditor/ckeditor_php5.php 138行:将

htmlspecialchars($value)

替换为

htmlspecialchars($value, ENT_COMPAT ,'GB2312')

测试,发布文章成功.

提示:若不想修改程序源码的话,建议更换到PHP5.3版本,等织梦升级支持PHP5.4以后再更换空间服务器.

 

dede在plus目录调用当前模板head.htm,footer.htm方法

在dede的plus文件夹里面有许多常用的模板的头部和尾部都是单独的写的,最简单的方法就是把默认模板的head.htm和footer.htm复制过来就行了,只是每次修改后又要再复制一次,为了减少不必要的操作,其实只需要修改一下文件就好。调用默认模板的头部和尾部,甚至是该目录下的所有文件都通用。
一、打开"/include/extend.func.php"
该方法适用于5.7版本,其他版本如果没有这个文件 就添加在 /include/common.func.php 中。

在最下面加入一个函数,注意代码$cfg_templets_skin,有些帖子是$cfg_templets_dir,但是会造成dede会员系统出现BUG,建议大家使用如下代码:
// 在plus目录调用 风格目录中的模版
function plusTempletDiy($path)
{
require_once(DEDEINC."/arc.partview.class.php");
global $cfg_basedir,$cfg_templets_skin;
$tmpfile = $cfg_basedir.$cfg_templets_skin."/".$path;//模版文件的路径
$dtp = new PartView();
$dtp->SetTemplet($tmpfile);
$dtp->Display();
}
二、打开plus文件夹的需要调用头部尾部的模板
用以下代码替换原因的调用头部代码,加在<head>标签下面即可。default为默认模板文件夹,根据实际需要修改即可。
<?php plusTempletDiy("head.htm"); ?>
<?php plusTempletDiy("footer.htm"); ?>

 

无需 Root 也能轻松备份应用数据:Helium

平日里咱们升级系统、刷机之前,都习惯备份一下应用程序和数据。一般来说,多数定制 ROM 中自带的工具可以无痛备份应用及其数据,但恢复时也仅限于在相同 ROM 中使用;如果我想刷机,比如更换成基于 AOSP 的 ROM,那这些备份资料可就毫无用武之地了大名鼎鼎的「钛备份」可以解决这一问题,但想要方便地使用它来备份和恢复数据,你必须获取 Root 权限。

不过今非昔比,Android 上许多功能无需 Root 也可实现,这就大大降低了玩家对 Root 的需求;另一方面来讲,Root 之后的安全隐患依旧是人们争议的话题。所以这也让许多玩家纠结不已:鱼和熊掌,真的不可得兼?

非也,非也,「钛」不行,「氦」帮忙。Clockworkmod 早在 2013 年就发布了这款 Helium 备份应用,它可以利用桌面端配合 Android 系统自带功能实现无 Root 备份应用及其数据。

本职工作做得好

Helium 备份工具在每一次打开都会检查 Root 权限,这就决定了 Helium 这次启动工作在何种状态之下。Helium 的操作没什么难度,支持云端备份和手机间同步(此功能需要购买高级版)。在具有应用列表的界面,从底部向上滑即可拉开更多选项。其中「App Data Only」看名字就知道是什么意思,打开它就意味着只备份应用数据,而应用本体则需要重新下载。虽然这样能够显著减少备份文件的体积,但一旦恢复数据时没有网络,那可就耽误事情了。

抛开 Helium 的界面不谈(因为它真的不好看),Helium 调用的是 Android 系统中的「桌面备份」功能,其实质是通过 SDK 进行备份,因此备份质量毋庸置疑。使用 SDK 备份的另一个好处便是可以脱离 Helium 来恢复备份文件,通用性极强。点击备份和恢复是会提示输入密码,这是 Android 系统要求,如果对保密性没有特殊要求的话我们可直接跳过。

在 Helium 的菜单中有一个 PC Download 功能,功能形式类似 Airdroid,我们可以在电脑端通过无线网络控制 Helium 进行备份和恢复。需要注意的是,这并非是无 Root 备份,而是一个远程控制功能,千万不要混淆。

曲径通幽来得巧

利用 SDK 开发包,Helium 可以无 Root 备份应用数据,这一功能直戳痛点,尤其是像我一样的强迫症人群,总感觉 Root 之后就像开了后门。

我们通过 Clockworkmod 网页可以下载 Windows、Mac、Linux 平台的客户端,同时在 Chrome 商店中也提供 Helium 插件下载,如此一来,Helium 几乎可以在包括 Chromebook 在内的全平台上运行。此外在 Windows 平台上还需要下载对应手机的驱动,手机端需要开启 USB 调试功能,之后手机和电脑上都打开 Helium,等待电脑和手机的提示即可。

如果手机默认的 USB 连接方式是 MTP,手机端 Helium 会提示切换成 PTP 连接模式,当提示可以断开连接时,我们就可以正常进行备份和恢复操作了。

 

Helium 与钛备份相比,备份速度更快,而在没有 Root 的手机上,Helium 便胜过钛备份一筹。如果不追求钛备份里更强大的功能,不妨让 Helium 代替钛备份。

你可以在 酷安 和 Google Play 下载 Helium。

一个合格的运营怎样练就非凡的沟通能力

每次写下这些文字的时候,我就在思考我们的读者能从中得到什么,是不是真的能够把干活分享出来,是不是自己粗枝乱叶的文字堆砌,有没有新的思想,或者想法,是不是千篇一律,和网上的东西并没有什么区别?不能做到语不惊人死不休,至少也得是新颖的东西,或者通俗易懂的,关于”如何做好网络运营系列”文章,我尽可能的用自己认为比较通俗易懂的方式展现出来,感谢一些朋友给予我的友善的提醒帮助。

上一篇《如何做好网络运营系列-策划能力》发布后,有几位朋友和我探讨了相关的一些问题,我很欣慰,谈了一些自己的见解,其实这也是运营人员一个非常不错的特质,懂得沟通学习,三人行必有我师,学习就得抱着空杯子的心态,如果我们自认为自己知道的东西,囊括四海,天下皆知,这种故步自封,闭门造车的想法一定会是你人生,或者职业生涯的最大绊脚石。运营是个综合体,我之所以把他分解开来一个一个讲解,是给那些愿意深刻了解相关知识的人,一个引子。也让我们能够认识到自己的短板在哪里,做相应的提高。

 

本期我们说说沟通能力,沟通是什么?

有人说沟通不就是讲话嘛,这有什么难的!我想说的是,能说是好事,这并不能说你的沟通能力就是超强的,你的沟通就没有问题的。

也有人说,沟通就是把自己想说的表达清楚。

也有人说,沟通就是两种思想的交流。

。。。。。。

这些说法看起来说并没有什么不妥的地方,但是我们想想看,真正的沟通是什么,我们为什么要沟通,沟通的目的是什么,沟通的过程中我们要注意什么问题,什么样的沟通才是高效的沟通等等。

 

 沟通的目的:

  第一:表达清楚自己的意思

良好的语言表达能力是沟通的前提,如果我们不懂得语境,不懂语气语调的作用,应用如何才能够清楚明了的表达自己的意思。俗话说语言是们艺术,好言一句三冬暖,恶语伤人六月寒。

 第二:让对方明白自己的意思

如何你自认为清楚明白的表达了自己的意思,对方却一头雾水,不明白你在说什么,那么就是沟通的失败,沟通说明了让是让对方明白自己的意图,如果我们做不到简单明了的表达自己的意思,那么这方面就需要加大力度去学习。

 第三:传达上级的命令

都说上通下达是最难做到的,我们很多的时候,对于上级的命令如果曲解,没有深刻的领会其中的意思,那就有可能造成误差,语境上的误差,语气上的误差,这样命令或者计划就很难被全力的去执行。

说白了,通过字面上我们就能看清沟通的目的,“沟”是方法,“通”就是目的。通过沟通人人间的信息就是一条通道,没有任何的阻力,障碍,让信息的通道畅通无阻。

 

  沟通需要注意的几个问题:

 第一:客观因素

就是一些外在的因素,如果我们在沟通的过程中,不注意,一些存在的,我们必须去面对的客观因素,那么沟通也是不能成功,人的思维是有盲点的,要牢记沟通不是说服,客观的说这样点并没有明显的界限,但在自我认知上有差异,同样是让对方接受你的一些观念,但是产生的优越感和失败感却是不同。那说服来说,说过成功了,你自我的成就感就大点,对方的挫败感也明显点,这种被动的接受对方思想的过程,实质上是一个排斥的过程,思想上的排斥是非常不利于说服的,所以我们在这方面首要的是要自己先把自己和对方摆在一个平等的位置,而不是高高在上,或者我要搞定他的心态去做,这样无形中我们就会在我们的言行举止中体现出来。加大了沟通的难度。

客观的因素是非常多的,比如一些用词,不同的地域文化对于一些词,是有不同的理解,比如中国人喜好8,6等这样的吉祥的数字,但是不喜欢74,47等这些有谐音的数字,同样讲话用词的时候也是有这样的问题,比如四川人喜欢说“老子”但是这只是口头禅,并没有什么特别的意思,但是你如果在甘肃人面前讲“老子”就是极大的不尊。当然类似的例子很多。平辈间的沟通我们可能顾忌的比较少,但是如果是上下级的沟通,不同辈分间的沟通,那就有一些忌讳,沟通可能用永远没有平等的时候,但是我们一定要考虑的很多,才有可能让沟通进行的比较顺利。

 第二:主观因素

我们的一些沟通者,因为一些自身的毛病,自身的问题,比如自身的修养有很大的问题,说话粗话满篇,不顾及场景乱说一通,主观的认为该如何该如何,自信是好事,但是盲目自信就成了你人生路上的阻力,过分自信和过分自卑是沟通的最大的主观方面的阻力。我们且不说形成这些主观因素的原因是什么,既然我们要去沟通,就要清楚这些将是影响我们沟通效果的,克服自身的这些问题,不再主观臆断,想当然的去做事情,就会避免自己身上的这些问题。

提高自身的一些素质,要自己有意识的去锻炼,对于自卑来说,你害怕什么就要勇敢的去干什么,一定要克服这个心理障碍。对于过分自信的,反之,自己并没有什么了不起的,强中自上强中手,一山还比一山高。

上面我只是简单的做了一些论述,具体的一些问题,就需要我们在实际的操作中去发现总结。

 

接下来我们讲讲高效沟通,如何才能做到高效沟通:

关于高效沟通的这话题,有很多,网络上充斥着各种各样的广告,关于高效沟通的课程,数不胜数,让人眼花缭乱,得力于王婆卖瓜自卖自夸,各家说各家的讲师是天下无双,拥有过硬的团队,雄厚的实力,有名师基因等等。

他们可以给大家讲述各种各样的技巧,貌似让人如醍醐灌顶,又似天方夜谭。中国有句古话叫大巧无巧术。王阳明的知行合一我想这才是我们高效沟通所要的东西,感兴趣的可以了解下“知行合一”。很多的东西只能放在书面上,并不能拿出来应用于实践,这些理论的东西,如果说有价值,那么他的价值一定不是在现在,既然如此我们为什么不用实用的东西。

人其实最讨厌的就是别人对他运用一些技巧方法,而喜欢对方能够站在自己的角度上,真正的为他去考虑,急对方之所急,想对方之所想。如果说高效沟通有诀窍的话,这我想大概这就是高效沟通的秘诀了吧。只此一句让你受用终生。

SEO优化方案定制:三个时期+四个方案

4-150206143141N3

首先,我为什么会选择在文章开头便给各位分享我的心得?主要的目的是我希望通过自己的一些感想来增强各位SEOer对于这篇文章的可读性。记得前些天,我跟几位同在东莞做SEO优化的朋友在聊天,期间他们就问到我如果我刚刚接到企业网站SEO订单是不是首先会马不停歇的做原创软文的整理和发布;我直接否认了。因为在前期我更看重的是优化方案,对于不同的行业,做方案的时间也不尽相同。一个有规律并且符合逻辑的优化方案设定,可以让你在优化过程中节省很多不必要的麻烦,今天小编就为大家分享相关的经验,希望可以帮助到各位。

4-150206143141N3
  三个时期,四个方案

SEO优化方案并不能一步到位,我看到过很多同行在做优化方案的时候,较多的都是一个方案里面就包括几个时期的优化,并且思路都差不多;其中略有不同的就是优化的力度。这样做,一旦优化的过程中出现了问题,可以说整个方案都得大改动甚至于作废。因此小编在这里给各位分享在优化过程的不同时期所对应的方案制定方式。

网站优化前期方案:前期主要指的是建站前或者拥有新站的用户群体,主要涉及的内容还是老生常谈的问题

1、网页设计以及模板的选择

针对不同的行业,你都需要从行业的角度去分析选用什么样色调、主题、插件等等能增强用户的访问体验。举例:

环保行业(绿色为主、白色为辅的主题模板)

饮料行业(强烈的撞色模板以及不规则图案等)

2、关键词的选择(根关键词、根关键词相关词、扩展长尾词)

这点我的建议是,建立一个规范的文档,不仅可以把相关的关键词归纳在一起,而且对应衔生出来的长尾词也一目了然。

3、关键词的布局(主页、目录页、标签等)

这点我真的是深有体会,在我入行的前期基本都是把需要布局的词放在一个文档,然后直接分配,后期需要修改的时候并不知道对应的关键词给我放到哪个页面了,并且随着页面数的增加,找出来真心比较麻烦。在这里建议大家的就是,每个关键词所对应的页面,大家记录在我第二点所讲到的文档。看似麻烦的事情,但是当你真正需要给内容等做修改的时候,你就会发现其中的便捷性。

4、内外链接的设置

内链指的是首页是否指向所有导航栏目的链接等,外链指的是文章内容外部的发展平台,在这里不做详解,各位可以上网查询一下。

  网站优化中期方案:网站饱和度建设以及数据分析

1、内容建设

一个网站的初始框架形成,我们便要开始给网站做内容建设,需要开始考虑如何根据根关键词来扩展内容,例如:SEO这个词

SEO(根关键词)

东莞SEO(区域+跟关键词)

东莞SEO教程(区域+跟关键词+需求)

然后以扩展出来的词来撰写文章,关于这方面的知识,大家可以观看我之前的文章《SEO的心灵窗户:软文技巧》,目前比较流行的内容建设便是结合产品来撰写软文,由于其用户体验的提高以及内容的丰富度能大大增强用户的粘性。

2、外部链接建设

内容建设完毕,你还需针对发布的平台做数据分析,内容发布平台所带来数据,数据实际的转化率等等。

3、网站平台数据分析

大致包括:百度关键词相关搜索数据分析、百度下拉框数据分析、百度指数数据分析、网站后台数据(收录量、页面排名、页面更新频率、热门页面数据等)分析以及各大搜索引擎的相关数据分析。

  网站优化后期方案:突破排名的瓶颈

到了后期,如果我们的排名卡在一个相对靠前的名词(前20名)但很长时间没有进展,我们便可以从网站大数据分析、网站模板微调以及页面调整等各方面来制定方案。来突破排名的瓶颈。

网站后期的维护方案:网站安全性也很重要

一旦排名做上去,也容易出现出现排名竞争,因此需要对网站的安全和排名的稳定性做的操作和维护,通过系统的更新和漏洞补丁的下载,定期对网站的内容进行及时更新等方案做出对应的解决方案。

总结:一个好的优化方案需要规律以及有系统性的采集才得以发挥,希望各位在制定优化过程也越来越来娴熟并运用于实战当中,加油!

原文来自:YouFoc社区

wordpress 多说插件造成发布文章变慢并报404错误

昨天发布文章时,发现每发布一篇文章,都会很慢,发完后,会报404错误页面

 

经过排查,网上说是百度结构化插件问题。

禁用并删除百度结构化插件后,问题依旧。

后测试也排除了网速及空间问题。

今天经过最终排查,发现是多说插件造成的问题。

 

现已删除多说插件并清理了部分不常用插件,解决了大部分问题,同时也删除了网站评论功能,以减轻网站负担。