WordPress插件 – 蓝月网络 https://lanyueer.com 专注于WordPress外贸建站,主题插件汉化、配置 Sat, 15 Jul 2017 06:46:33 +0000 zh-CN hourly 1 控制Contact Form 7 访问权限 https://lanyueer.com/control-contact-form-7-access/ Wed, 12 Jul 2017 14:16:39 +0000 https://lanyueer.com/?p=985 默认设置下,Contact Form 7 允许所有用户访问管理面板,而不仅仅是管理员。但是对用有些用户来说,这是不爽的。特别是自定义了Contact Form 7的相关设置,实际上有些设置具有技术性。

控制Contact Form 7 访问权限,首发于蓝月网络。

]]>
本文是《Contact Form 7教程》系列教程的第 4 部分,该系列共包含以下4个部分:

默认设置下,Contact Form 7 允许所有用户访问管理面板,而不仅仅是管理员。但是对用有些用户来说,这是不爽的。特别是自定义了Contact Form 7的相关设置,实际上有些设置具有技术性。然而你完全控制这个访问权限,而只允许管理员访问和编辑。

例如, 你想只允许管理员访问和编辑,你只需要修改 wp-config.php文件,打开插入:

  1. define( 'WPCF7_ADMIN_READ_CAPABILITY', 'manage_options' ); 
  2. define( 'WPCF7_ADMIN_READ_WRITE_CAPABILITY', 'manage_options' );

WPCF7_ADMIN_READ_CAPABILITY 控制最小访问管理面板的权限。而 WPCF7_ADMIN_READ_WRITE_CAPABILITY 最小编辑权限. 显而易见WPCF7_ADMIN_READ_WRITE_CAPABILITY比 WPCF7_ADMIN_READ_CAPABILITY更严格, 没有管理员权限你是不能访问的.

manage_options是控制管理员访问的权限. 因此设置manage_options 给 WPCF7_ADMIN_READ_CAPABILITY 和 WPCF7_ADMIN_READ_WRITE_CAPABILITY 只允许 administrator 访问和编辑权限.

控制Contact Form 7 访问权限,首发于蓝月网络。

]]>
Contact Form 7基础教程之语法结构 https://lanyueer.com/contact-form-7-syntax-structure/ Wed, 12 Jul 2017 13:59:02 +0000 https://lanyueer.com/?p=981 Contact Form 7 允许你编辑联系表单模版和邮件模版(邮件头部和邮件正文),也就是说在中括号里面的结构是可以编辑的。

Contact Form 7基础教程之语法结构,首发于蓝月网络。

]]>
本文是《Contact Form 7教程》系列教程的第 3 部分,该系列共包含以下4个部分:

Contact Form 7 允许你编辑联系表单模版和邮件模版(邮件头部和邮件正文),也就是说在中括号里面的结构是可以编辑的。

表单标签语法

在你的表单标签将会出现下面的形式:

form tag example

Type 是最重要的元素,不能修改,其告诉contact form 7如何解析表单。例如text,就是文本输入框,而select是下拉选择框。

Name 是用来区分不同的表单元素,是必填选项,不能去掉的,但是可以在不同的表单出现相同的名字,不能在同一表单出现相同的名字.

Options 用来控制表单的外观,可选的。你可以通过ID和class来控制,然后在样式表内写css代码.

一般情况下, values 用来表示默认值。是可选的。

 

邮件标签语法

这个标签是非常简单的,对应表单标签,不过你只需要用中括号括起表单的名字即可获取表单的内容。

mail tag example

Contact Form 7基础教程之语法结构,首发于蓝月网络。

]]>
Contact Form 7高级应用教程 https://lanyueer.com/contact-form-7-advanced-application-tutorial/ Wed, 12 Jul 2017 13:50:43 +0000 https://lanyueer.com/?p=978 WordPress联系表单插件 – Contact Form 7 是一款简单易用扩展性灵活的表单插件,可以自定义各式各样不同类型的表单功能,而且支持自定义接受邮件,Ajax提交和 jQuery表单插件支持.可结合Akismet过滤垃圾邮件

Contact Form 7高级应用教程,首发于蓝月网络。

]]>
本文是《Contact Form 7教程》系列教程的第 2 部分,该系列共包含以下4个部分:

WordPress联系表单插件 – Contact Form 7 是一款简单易用扩展性灵活的表单插件,可以自定义各式各样不同类型的表单功能,而且支持自定义接受邮件,Ajax提交和 jQuery表单插件支持.可结合Akismet过滤垃圾邮件,同时也支持CAPTCHA反垃圾邮件,表单域元素支持各种最常见的:单选框、复选框、文本框、下拉菜单、按钮、文件上传等多种表单域.

Contact Form 7 除了特有的联系表单扩展功能外,还有更多高级的特色功能应用,这里为大家一一说明。

1,邮件发送接收功能

当读者填写好信息点击提交后,你就可以收到一封邮件,我们在消息正文中输入如下代码,就可以显示相应信息:

  1. 读者名字:[your-name]
  2. 电子邮件:[your-email]
  3. 来信主题: [your-subject]
  4. 备注信息:[your-message]

下面是如何实现收邮件:
首先,你要保证你的博客所在虚拟主机支持mail()函数,不支持的请安装WP SMTP插件。

WordPress SMTP发送邮件插件:WP SMTP

对于一个网站而言,发送邮件的功能是必不可少的,现在的主机一般都支持发送邮件,但是不同的主机由于函数限制或者某些其他原因,可能造成没办法正常发送邮件。这时候,我们可能就要借助第三方SMTP发送邮件。


在收件人中填写好收件人的邮箱,这里填我们自己的就行。
还要添加好寄件人admin@admin.com,注意,在使用WP SMTP插件辅助发信的朋友尖括号里面和外面都要写WP SMTP中配置的邮箱,不然无法发信。
这样你就可以收到按你的格式的邮件了。

紧接着下面分别是邮件2
可以设置多个收件箱,比如还需要给读者发送感谢信之类的

紧接着下面分别是消息
可以自定义显示提示消息,一般不作修改,随意.
紧接着下面分别是附加设定
附加设定可以添加附加的设定,比如我们想要提交后跳转到指定页面,可以输入如下内容:

  1. on_sent_ok: "location = 'http://lanyueer.com/';"

2,什么是Cc和Bcc

CC 英文全称是 Carbon Copy(抄送);BCC英文全称是 Blind CarbonCopy(暗抄送)。 两者的区别在于在BCC栏中的收件人可以看到所有的收件人名(TO,CC,BCC),而在TO 和CC栏中的收件人看不到BBC的收件人名。

3,Contact Form 7如何添加抄送和暗送

在 邮件栏 – 另外的标头( Additional headers )下填写如下格式代码即可

  1. Cc:test001@waisir.com
  2. Bcc:test002@waisir.com

4,Contact Form CheckBox多选标签如何将选择框放在后面

添加label_first 这个tag即可
选框在前:

  1. [checkbox your-cb “Option 1” “Option 2” “Option 3”]

选框在后:

  1. [checkbox your-cb label_first “Option 1” “Option 2” “Option 3”]

5,如何CheckBox多选标签竖着排列

在主题CSS层叠样式表中添加如下代码即可

span.wpcf7-list-item { display: block; }
  1. 6,Contact Form如何调整提示信息栏的位置

当点击提交后,默认情况下在表单最下方会看到恭喜,提交成功类似文字.
我们可以随意改变提示信息的位置,使用[response]标签即可,如:

  1. [response]
  2. Your Name (required)
  3. [text* your-name]
  4. Subject
  5. [text your-subject]
  6. Your Message
  7. [textarea your-message]
  8. [response]
  9. [submit "Send"]

7,Contact Form解决关于SEO邮件暴露问题

如,你需要一个下拉框让读者选择给谁发送邮件,不如可以选择(站长,销售员,客服),一般情况下,我们这样写就行

  1. [select your-recipient “ceo@example.com”
  2. “sales@example.com”
  3. “support@example.com”]

再将自定义的[your-recipient]字段填写到收件人即可.这样就可以将邮件发送到选择的邮箱中
毋庸置疑,这样会暴露邮箱地址, 而带来垃圾邮件,而且对于用户来说也不方便.
做如下处理即可

  1. [select your-recipient "CEO|ceo@example.com"
  2. "Sales|sales@example.com"
  3. "Support|support@example.com"]

相当于为每个邮件地址设置了一个用于显示的别名

8,Contact Form如何返回表单所在POST的url和文章名称/用户IP等参数

通过引用以下这些tag就可以实现了

  1. [_remote_ip]访者IP
  2. [_url]返回页面url
  3. [_date]返回日期
  4. [_time]返回时间
  5. [_post_id]返回postID
  6. [_post_title]返回文章名称
  7. [_post_url]返回文章URL
  8. [_post_author]返回文章作者
  9. [_post_author_email]返回文章作者邮件

9,Contact Form如何让用户上传附件并发送附件

和添加其他文本域便签一样,添加一个[file]标签,如:

  1. [file file-torrent limit:1000000 filetypes:torrent]

然后在邮件栏-附件下填写[file-torrent]即可
有多个附件时并列填写即可[file-torrent1][file-torrent2]

10,怎么将contact form 7直接插入到主题中

需要注意的是不能用短代码,用do_shortcode()函数调用:

  1. <?php echo do_shortcode( '[contact-form-7 id="1234" title="Contact form 1"]' ); ?>

11,Contact Form验证码CAPTCHA无法输入,这个应该在火狐下才会出现,应该的位置没放正确

这是正确的写法

  1. [captchac your-captcha]
  2. <label>Enter the code: [captchar your-captcha]</label>

这是不好的写好

  1. <label>[captchac your-captcha]
  2. Enter the code: [captchar your-captcha]</label>

12, 更多 Contact Form 7 参数:

提交询盘时间:[_date] [_time]

  1. 客户访问IP:<a href=”http://www.ip138.com/ips138.asp?ip=[_remote_ip]”>[_remote_ip]</a> (点击打开可看到ip所属国家)
  2. 客户访问产品:[_url]
  3. 客户访问日期:[_date]
  4. 客户访问者有没有facebook:<a href=”https://www.facebook.com/search/top/?q=[your-email]”>[your-email]</a>

Contact Form 7高级应用教程,首发于蓝月网络。

]]>
Contact Form 7基本使用教程 https://lanyueer.com/contact-table-7-basic-usage-tutorial/ Wed, 12 Jul 2017 13:33:00 +0000 https://lanyueer.com/?p=975 WordPress联系表单插件 – Contact Form 7 是一款简单易用扩展性灵活的表单插件,可以自定义各式各样不同类型的表单功能,表单域元素支持各种最常见的:单选框、复选框、文本框、下拉菜单、按钮、文件上传等多种表单域。

Contact Form 7基本使用教程,首发于蓝月网络。

]]>
本文是《Contact Form 7教程》系列教程的第 1 部分,该系列共包含以下4个部分:

WordPress联系表单插件 – Contact Form 7 是一款简单易用扩展性灵活的表单插件,可以自定义各式各样不同类型的表单功能,表单域元素支持各种最常见的:单选框、复选框、文本框、下拉菜单、按钮、文件上传等多种表单域。
它的作用等同于WordPress留言板插件。

使用Contact Form 7生成表单基本步骤:

1,下载和安装 Contact Form 7

下载wordpress表单插件contact-form,在网站后台点击安装插件进入表单插件的安装。

2,新建联系表单

安装启用Contact Form 7插件后,在后台左侧功能菜单,底部会多出一个“Contact”项,这里就是Contact Form 7设置区了,点击进入,找到“添加新表单”按钮链接,点击可以新建一个联系表单;

3,设置联系表单

设置联系表单,包括设置如下内容:

  • 表单元素设置:包括:姓名、邮箱、标题、详细内容和表单提交按钮,可以通过旁边的生成标签下拉框继续添加自己需要的其他表单元素,比如文件上传按钮、验证码等。
  • 收件人、邮件内容等信息设置:在表单元素的下方,我们可以对收件人、发送人、主题以及邮件主题内容等一系列信息进行设置。
  • 发送邮件错误时的提示信息:在 Message 一栏,我们可以设置邮件发送时的错误提示信息。
  • 发送邮件成功后的跳转页面:在 Additional Settings 一栏,我们可以设置邮件发送成功之后的附加信息.

使用香港免备案空间建网站的朋友,如果遇到使用 Contact Form 7 无法正确收到邮件的情况,可以配合 WP Mail SMTP 插件一起使用。

wordpress表单插件contact-form及使用方法

4,将联系表单放置到页面中

在 Contact Form 7 插件设置好之后,可以使用下面的代码去调用表单,将这段代码放到需要显示表单的页面即可,表单名必须是你自己设置的表单的名称。默认情况下wordpress表单插件只适用于page页面。

  1. [contact-form 1 "表单名"]

以上是wordpress制作表单提交的表单插件contact-form及使用方法,如果你在自己建网站过程中,不想使用插件,也可以使用代码的方式来制作网站订单提交功能。

Contact Form 7基本使用教程,首发于蓝月网络。

]]>
WordPress SMTP发送邮件插件:WP SMTP https://lanyueer.com/wordpress-smtp-email/ Wed, 14 Jun 2017 10:01:43 +0000 https://lanyueer.com/?p=949 对于一个网站而言,发送邮件的功能是必不可少的,现在的主机一般都支持发送邮件,但是不同的主机由于函数限制或者某些其他原因,可能造成没办法正常发送邮件。这时候,我们可能就要借助第三方SMTP发送邮件。

WordPress SMTP发送邮件插件:WP SMTP,首发于蓝月网络。

]]>
对于一个网站而言,发送邮件的功能是必不可少的,现在的主机一般都支持发送邮件,但是不同的主机由于函数限制或者某些其他原因,可能造成没办法正常发送邮件。这时候,我们可能就要借助第三方SMTP发送邮件。

对于使用WordPress建站的朋友来说,SMTP发送邮件的插件还是比较多的,功能大多类似,下面以WP SMTP为例讲解一下配置。

WP SMTP简介

WP SMTP插件是国人制作的,设置页面的顶部包含了 Gmail邮箱、微软邮箱、163邮箱、QQ邮箱的设置示例,可以点击对应的图标查看示例截图,其他邮箱设置方法也差不多。

WP SMTP插件已被WordPress官方收录,已自带简体中文语言包,而且可以在卸载时自动删除设置数据。

配置好 WP SMTP 以后,你可以发送一封测试邮件,看是否成功。

WP SMTP插件下载

WP官方 | 作者官方

类似插件推荐

如果不想使用插件的话,单纯使用代码也是可以的:

WordPress无插件实现SMTP发送邮件

在使用WordPress的过程中,不可避免地要用到邮件功能。WP自带了mail函数,但用自带mail函数发送邮件很容易失败或者被拒收。所以很多人选择用更方便高效的SMTP来发送邮件。要用SMTP发送邮件,首先需要拥有一个支持SMTP的邮箱(包括Gmail、QQ、126、163等主流邮箱都支持SMTP功能,可能需要到设置中打开),然后在WordPress...


只要你搜索 SMTP ,你会发现不少类似的插件,你可以试试 Configure SMTP 或 WP-Mail-SMTP

WordPress SMTP发送邮件插件:WP SMTP,首发于蓝月网络。

]]>
强大的SEO插件 – Yoast seo使用介绍 https://lanyueer.com/yoast-seo-plugin/ Fri, 02 Jun 2017 13:06:18 +0000 https://lanyueer.com/?p=936 最近安装的YOAST SEO都无法直接看到TOOLS和ADVANCED这几个菜单 这需要在 SEO ̵…

强大的SEO插件 – Yoast seo使用介绍,首发于蓝月网络。

]]>
最近安装的YOAST SEO都无法直接看到TOOLS和ADVANCED这几个菜单

default-yoast-seo

这需要在 SEO – Dashboard 里面有一个features子菜单里面,把这些功能打开即可显示,如下图

new-yoast-seo-setting

然后就可以显示全部的菜单了,如下图,下文的内容都是围绕这些设置展开。

yoast seo全部设置

1. 安装激活

2.Titles & Metas: 这一部分就是设置各个不同类型页面的标题格式,一般按以下的格式默认填写即可

Homepage:上面提示你去网站首页里面单独设置,所以这里不用管它。

yoast seo首页标题设置

post types + other 这两大项的title保持系统默认即可,不用改变

Taxonomies: 里面的每一项的title都把archive单词去掉即可

yoast seo taxonomies设置

Archive: 把这一项目里面所有的子项目全部设置为noindex即可

yoast seo archives设置

3. XML Sitemaps, 按下列截图进行设置,其他子项保持默认

Poat types这里只显示post, pages 和Portfolio 的sitemap,按下图设置即可

post sitemap

Taxonomies这里只显示Categories和 portfolio categories, 按下图设置即可

taxonomies sitemap

以上设置完保存以后,在General里面点击xml sitemap即可打开XML格式的sitemap链接,不用再通过FTP上传去生成链接(要明白上传xml文件的目的是为了获取网站地图的链接),当你的网站有新内容的时候,此sitemap会自动更新内容,非常方便。所以可以将此sitemap的链接直接提交给GG即可。

yoast seo网站地址设置

4. Tools菜单设置

在tools里面的file editor里面可以编辑robots文件和 htaccess文件,如下图

Yoast seo tools设置

将正确的robots代码粘贴到框里面后,点save即可生效

yoast robots

网站禁止收录的robots代码为:

User-agent: *
Disallow: /

网站完成后放开收录的参考robots代码参考:

User-agent: *
Disallow: /inquiry.html
Disallow: /inquiry/
Disallow: /author/*
Disallow: /thank-you/
Disallow: /blog/author/*
Disallow: /wp-admin/

robots编辑框的下部就是编辑htaccess文件的编辑框,但是由于htaccess文件非常重要,稍有不慎就会导致网站打不开,所以建议慎重操作htaccess文件, 在操作前一定要备份文件。

yoast htaccess

注:对于使用VPS建站并且系统为nginx的网站,是没有.htaccess文件设置项的

5. Advanced设置项保持默认即可

强大的SEO插件 – Yoast seo使用介绍,首发于蓝月网络。

]]>
WordPress用户切换插件:User Switching https://lanyueer.com/wordpress-user-switching/ Wed, 24 May 2017 14:50:07 +0000 https://lanyueer.com/?p=931 作为WordPress主题或插件开发者,测试多角色多用户是很必要的,频繁的退出、登录,既耗时又繁琐。推荐你试试…

WordPress用户切换插件:User Switching,首发于蓝月网络。

]]>
作为WordPress主题或插件开发者,测试多角色多用户是很必要的,频繁的退出、登录,既耗时又繁琐。推荐你试试 WordPress用户切换插件:User Switching

User Switching 插件可以让你在 WordPress 不同用户之间的快速切换,只需要点击一个按钮,就可以立即退出当前用户,并登录新的用户。User Switching 完美兼容 WordPress多站点和 BuddyPress。如果你需要在不同账户之间切换登录,或者需要切换不同的管理员角色,这个插件就适合你!

只有那些能够编辑其他用户的角色(默认情况下,只有单个站点的安装管理员和多站点的超级管理员)才可以使用该插件。

User-Switching2

切换到用户之后,也可以通过管理员工具条非常轻松的切换回来你自己的用户:

User-Switching3

 

在后台插件安装界面搜索 User Switching 即可在线安装,或者

下载 User Switching

WordPress用户切换插件:User Switching,首发于蓝月网络。

]]>
如何通过BackupBuddy保持您的WordPress内容安全 https://lanyueer.com/how-to-keep-your-wordpress-content-safe-with-backupbuddy/ Mon, 22 May 2017 13:49:41 +0000 https://lanyueer.com/?p=917 您是否正在为您的WordPress网站寻找可靠的备份插件? 无论您是运行一个小型个人博客还是商业网站,我们强烈建议您为WordPress网站设置自动备份解决方案。 在本文中,我们将向您展示如何使用BackupBuddy保护您的WordPress内容安全。

如何通过BackupBuddy保持您的WordPress内容安全,首发于蓝月网络。

]]>
您是否正在为您的WordPress网站寻找可靠的备份插件? 无论您是运行一个小型个人博客还是商业网站,我们强烈建议您为WordPress网站设置自动备份解决方案。 在本文中,我们将向您展示如何使用BackupBuddy保护您的WordPress内容安全。

为什么需要您的网站的WordPress备份插件

互联网上的所有网站都容易受到安全威胁的影响。 任何网站都可能成为黑客,数据丢失或服务器灾难的牺牲品。

无论您是否使用WordPress网站,都可能发生这种情况。 任何有经验的人都可以告诉你,问题不在于是否会发生,而是一定会发生的。

保护自己免受此类灾难的第一步是实施自动备份解决方案。

就像您的计算机一样,您可以备份您的网站并将备份存储在不同的位置。 这样您就可以在需要时轻松恢复网站。

BackupBuddy是一个WordPress备份插件 ,可以让您自动创建WordPress站点的完整备份,并将其保存在多个远程位置,如云存储服务,计算机,FTP服务器等。

在您的WordPress网站上安装BackupBuddy

购买插件后,您需要将其下载到您的计算机。

接下来,您需要安装并激活BackupBuddy插件。

使用BackupBuddy设置预定备份

只需访问BackupBuddy »备份页面即可创建和设置备份。

BackupBuddy quick setup wizard

首先,您需要提供一个电子邮件地址。 这是BackupBuddy将向您发送电子邮件通知和备份电子邮件的地址。

接下来你需要提供一个密码。 如果您使用BackupBuddy将WordPress站点移动到新服务器或主机时,将使用此密码。

设置了密码之后需要选择发送备份的位置。

有很多选项可用。 您可以将您的WordPress备份存储在Dropbox,Google Drive,Amazon S3,Email,FTP,本地存储等。

Choose where to save backups

最后,您需要选择创建备份的频率。 您可以根据需要创建手动备份,或者选择每月或每周的完整备份选项,每日数据库备份。

点击保存设置按钮继续。

BackupBuddy现在将显示备份配置文件页面。 您可以单击数据库或完整备份配置文件来创建您的第一个备份。

Backup Profiles

由于您之前尚未创建备份,因此建议您单击完整备份配置文件。

确保选中“作为备份过程的一部分发送到远程目标 ”旁边的框。 这将弹出一个弹出窗口,您可以从中选择您之前添加的目的地之一。

Select backup destination

BackupBuddy将开始创建备份文件。 您将可以看到备份的进度。 一旦完成,您将看到一个成功的消息。

您现在可以检查所选的远程目标,以确保备份已成功传输。

使用BackupBuddy恢复WordPress备份

BackupBuddy不仅可以轻松创建备份,还可以轻松地从备份还原站点。

只需转到BackupBuddy»恢复/迁移页面,并向下滚动到您的备份部分。 在那里您将看到浏览或还原文件和数据库回滚的链接。

Restore files and database from backup

要完整恢复或迁移,您需要下载并将importbuddy.php文件和完整备份zip文件上传到您的服务器。请访问您的Web浏览器中的importbuddy.php。 它在您的网站的根目录中,因此其URL将类似于:

http://www.example.com/importbuddy.php

ImportBuddy现在将要求您下载ImportBuddy时创建的密码。

在下一个屏幕上,ImportBuddy将显示您上传的备份文件。 如果您没有使用FTP上传备份文件,则可以单击上传选项卡以立即上传备份文件。 选择数据后,单击下一步继续。

ImportBuddy将解压缩您的备份文件,并在提取文件时显示成功消息。 点击下一步按钮继续。 在下一个屏幕上,ImportBuddy将要求您提供站点数据库信息。(如果数据库中已经有数据,还需要选中清除数据) 然后点击下一步。

在下一个屏幕上,ImportBuddy将要求您提供站点URL。 如果您从一个域移动到另一个域,或将本地服务器站点移动到实际站点,则需要更新站点URL。 如果您只是恢复WordPress网站,那么它将被设置为使用您当前的URL。

完成后测试没有问题就需要删除临时文件。

如何通过BackupBuddy保持您的WordPress内容安全,首发于蓝月网络。

]]>
批量删除WordPress多余缩略图 减少服务器存储空间 https://lanyueer.com/wp-dnui/ Wed, 26 Apr 2017 10:10:30 +0000 http://lanyueer.com/?p=874 如果我们默认安装WordPress之后没有设置媒体图的尺寸,只要我们上传一张图片就会自动剪裁多个尺寸存储在网站…

批量删除WordPress多余缩略图 减少服务器存储空间,首发于蓝月网络。

]]>
如果我们默认安装WordPress之后没有设置媒体图的尺寸,只要我们上传一张图片就会自动剪裁多个尺寸存储在网站图片目录中。但是,随着网站内容的增加,我们会发现图片文件夹存储量还是比较大的,无论是转移数据,还是备份网站每次都是一个负担,甚至有些朋友用的虚拟主机是有存储量限制的,所以还是希望尽量的减少存储占用量。

理论上我们可以通过FTP登入服务器,然后检查图片命名,将没有用到的图片进行手动删除,但是这里也有一个问题,因为默认都是按照时间分管的,一个个删除和选择文件夹比较费事,肯定是有插件可以来解决这个问题。这里老蒋找到一个DNUI (Delete Not Used Image)插件,安装插件之后可以看到哪些图片不在使用,然后根据实际的进行一个个删除。

第一、DNUI插件安装

DNUI插件安装

并没有检测到是否适合当前最新版本的WP,但是还是安装试试吧。

第二、DNUI插件使用

老蒋也翻看到其他网友以前关于DNUI插件的文章,看到可以进行批量删除图片,但是我这里在安装之后看到的是只能一个个删除或者全部删除,不可以筛选。

DNUI插件使用

这里我们可以看到会检测到当前不用的图片(在文章中没有用到的图片)我们可以选择删除或者全部一次性删除,这个一次性删除建议谨慎使用,一来如果图片很多会导致加载超时,或者我们担心会不会将有用的图片删除,我们谨慎起见还是一个个删除。

当然,如果我们删除之前进行备份,可以确保万无一失。不过一般不用的图片还是可以看到的,比如后缀有尺寸标识,我们可以一个手工删除掉。

批量删除WordPress多余缩略图 减少服务器存储空间,首发于蓝月网络。

]]>
WordPress注册邀请码插件:BAW Easy Invitation Codes https://lanyueer.com/baw-easy-invitation-codes/ Mon, 02 Jan 2017 04:11:13 +0000 http://lanyueer.com/?p=812 BAW Easy Invitation Codes 简介 BAW Easy Invitation Codes …

WordPress注册邀请码插件:BAW Easy Invitation Codes,首发于蓝月网络。

]]>
BAW Easy Invitation Codes 简介

BAW Easy Invitation Codes 是一个WordPress邀请码插件,专门用来生成邀请码,用户如果要注册网站,必须拥有邀请码才可以。该插件支持单个添加邀请码,可以设置邀请码可用次数,还可以批量生成邀请码。可以统计邀请码使用的次数。还可以在邀请码输入框下添加自定义文本,比如可以添加一个链接,告诉用户如何获取邀请码。

sp170102_121306

BAW Easy Invitation Codes 安装使用

1.在插件安装界面直接搜索 BAW Easy Invitation Codes 即可在线安装,或者在此下载

下载 BAW Easy Invitation Codes

2.要正常使用该插件,前提是肯定要开放注册了,可以在 设置 – 常规 中勾选“允许任何人注册”。

3.启用该插件后,就可以添加邀请码了,然后想办法将邀请码发送给你的朋友们吧!

WordPress注册邀请码插件:BAW Easy Invitation Codes,首发于蓝月网络。

]]>
给 WordPress 后台和前台设置不同的语言 https://lanyueer.com/simple-admin-language-change/ Wed, 19 Oct 2016 13:09:35 +0000 http://lanyueer.com/?p=783 Simple Admin Language Change 插件,允许你直接在后台设置 – 常规界面为前台和后台…

给 WordPress 后台和前台设置不同的语言,首发于蓝月网络。

]]>
Simple Admin Language Change 插件,允许你直接在后台设置 – 常规界面为前台和后台设置各自的语言,而且解决了第一种方法的弊端:

20161017101420
不过,在 设置 – 常规 这个界面,显示的仍然是前台语言,其他页面都是后台语言。

你可以在后台插件安装界面搜索 Simple Admin Language Change 直接安装,或者

在这里下载 Simple Admin Language Change

给 WordPress 后台和前台设置不同的语言,首发于蓝月网络。

]]>
移除Visual Composer激活提示 https://lanyueer.com/how-to-remove-visual-composer-active-your-copy-nag/ Wed, 24 Aug 2016 12:49:21 +0000 http://lanyueer.com/?p=695 最快捷的方式 最简单的方法是将下面的代码放在您当前主题的 Functions.php 文件中: setcook…

移除Visual Composer激活提示,首发于蓝月网络。

]]>
最快捷的方式

最简单的方法是将下面的代码放在您当前主题的 Functions.php 文件中:

  1. setcookie(‘vchideactivationmsg’, ‘1’, strtotime(‘+3 years’), ‘/’);
  2. setcookie(‘vchideactivationmsg_vc11’, (defined(‘WPB_VC_VERSION’) ? WPB_VC_VERSION : ‘1’), strtotime(‘+3 years’), ‘/’);

使用插件方式

或者你可以将下面的代码保存为stop-vc-nag.php,然后放在 wp-content/plugins文件夹中并在后台激活“关闭Visual Composer激活提示”插件。

  1. <?php
  2. /*
  3. Plugin Name: 关闭Visual Composer激活提示
  4. Plugin URI:https://lanyueer.com
  5. Description:此插件可以关闭后台Visual Composer激活提示。
  6. Version: 2016.08.23
  7. Author: 蓝月网络
  8. Author URI: https://lanyueer.com
  9. License: GPL2
  10. */
  11.  
  12. add_action(‘admin_init’, function()
  13. {
  14.     if(is_admin()) {
  15.         setcookie(‘vchideactivationmsg’, ‘1’, strtotime(‘+3 years’), ‘/’);
  16.         setcookie(‘vchideactivationmsg_vc11’, (defined(‘WPB_VC_VERSION’) ? WPB_VC_VERSION : ‘1’), strtotime(‘+3 years’), ‘/’);
  17.     }
  18. });

移除Visual Composer Ultimate Addons提示

将下面的代码添加到wp-config.php文件中:

  1. define(‘ULTIMATE_NO_EDIT_PAGE_NOTICE’, true);
  2. define(‘ULTIMATE_NO_PLUGIN_PAGE_NOTICE’, true);

移除Visual Composer激活提示,首发于蓝月网络。

]]>
7款最好用的 WordPress 多语言翻译插件 https://lanyueer.com/best-wordpress-translation-plugin/ Sat, 20 Aug 2016 01:51:32 +0000 http://lanyueer.com/?p=674 写一篇好文章,通常要做大量工作,你自然就想把写出来的文章分享给最广大的受众。 现而今,最通用的语言当属英语。E…

7款最好用的 WordPress 多语言翻译插件,首发于蓝月网络。

]]>
写一篇好文章,通常要做大量工作,你自然就想把写出来的文章分享给最广大的受众。

现而今,最通用的语言当属英语。Ethnologue(民族语言网)在其2015年版用户手册中指出,在全球74亿人中,有近10亿人以某种形式说英语,有4亿人以英语为母语。

与使用互联网有关的数据则更加有趣。网络技术调查网站W3Techs公司的调查结果表明,虽然仅有25.9%的互联网用户说英语,但是多半,准确地说,53.6%的互联网内容使用的都是英语。这里明显存在一个问题,也给使用多语言工作且经验丰富的网络高手提供了一个新的机遇。

为了能够赢得国际互联网用户,就得发布多语言内容。比如说,你将自己的内容翻译成西班牙语,就可能看到有西班牙用户访问你的网站。

把自己网站的内容翻译成多种语言的最好方式就是安装相关的插件。这里有很多非常好的方法。这些插件通常分为两种类型:

  • 自动翻译插件。此类插件使用在线服务,点击相应按钮即可使用。但是使用类似服务不能获得高质量的译文。
  • 人工翻译插件。此类插件可以对内容进行辅助翻译(或者使用相应的软件)。您可以用母语写作,然后把它翻译成其他语言,让用户可以在这些语言之间进行切换。用这种方法翻译劳动强度要大些,但是译文的质量会更高。

本次评测中列举的插件既包括第一类,也包括第二类。我们将对7款多语言内容翻译插件进行讲评。

WPML ($29起价)

wpml

这款插件无疑这7款插件中名气最大的。这款插件默认支持40多种语言,还可以添加其他支持语言。

WPML可以将译文添加到主域名,也可以添加到子域名和其他域名,让它成为多语言网站管理的通用方式。

这款插件的许可证起价是29美元,完整版售价为79美元,不过真的很值哦!开始使用插件之前要添加eCommerce多语言支持和翻译小工具,也可以在站点仪表盘进行翻译,这样,和您使用不同语言的用户,也能自己看懂主题和插件设置页面。

当然喽,这款插件最主要的功能是进行翻译。使用WPML插件,对站点内容既可以人工翻译,又可以自动翻译。

如果您需要自动翻译,WPML可以和ICanLocalize和Cloudwords服务器同步。它可以将您站点的内容发给相应服务器进行翻译,并能得到不错的翻译结果。

如果您更喜欢人工翻译,可以使用WordPress文本编辑器,在原文旁边输入译文即可。

您还可以鼓励您的访客翻译您站点的内容,您可以将他们的角色指定为译员用户。该用户应该在注册过程中填写自己使用的语言。站长可以为这些译员制定具体的翻译内容。

Google Website Translator от Prisna.net (免费)

google-website-translator

为使翻译变得快速便捷,很多人更喜欢使用谷歌翻译器。谷歌翻译是一种不错的免费翻译服务(尽管翻译质量不是很好),这项服务是免费的,并能支持100多种语言。

既然这项服务这么好,干嘛不用它来翻译自己站点的内容呢?这款免费插件可以让整个翻译过程实现自动化。

插件使用起来很简单:您只需要安装并激活插件,并设置您站点的源语言,然后选择目标语言(可以全选Google翻译器的支持语言)。翻译管理面板一目了然,令整个翻译过程变得特别容易。

您可以在您的站点侧边栏放一个Prisna GWT专用小工具(也可以使用简码插入文章中)。用户可以在出现的列表中选择自己使用的语言或者点击相应的国旗图标。每个小工具都有四种样式可供选择.

这款插件可以将您站点的内容即时翻译成用户选中的语言–就这么简单

Polylang (免费)

Polylang

Polylang属于人工翻译插件。这意味着,您只有熟练掌握语言,才能对自己站点的内容进行人工翻译,或者您也可以雇人来翻译。但是对于所有想管理多语言站点的人来说,这款插件使用起来很方便。

您需要在插件设置页面添加您站点应当支持的语言(该插件支持的语言近100种)。每种语言都是单独添加的,您需要为其选择唯一的双字母编码。您也可以选择语言名称或者点击相应的国旗图标。

现在您就可以对任何文章、页面、文章形式、评论、分类、标签或者菜单进行翻译啦!需要强调的是,您用不着把每篇文章都翻译一遍,您只翻译您需要的内容就可以了。

每一篇译文发布后会生成一个唯一的、并带有您在设置时指定的双字母编码的URL地址。用户可以使用相应的小工具进行切换。

如果您想从WPML切换到Polylang,可以使用专门的插件,

Lingotek Translation (免费)

lingotek-translation

如果您喜欢Polylang提供的功能,但是翻译水平又不行,那么Lingotek对您来说就是最好的选项。Lingotek是利用最好的插件Polylang构建的免费翻译管理云系统。

Lingotek提供了三种翻译解决方案。

  • 机器翻译–利用Microsoft Translator,可以免费翻译前10万个字符。
  • 团队翻译–提供给您或者您的同事/用户。利用内置的Lingotek Workbench专用文本编辑器对网站内容进行翻译。
  • 专业翻译–如果您的资金充裕,这个方案是最好的。您可以从Lingotek网站近5 000名专业译员中聘请一位。为便于您跟踪翻译进度并选拔最适合您的团队成员,应该为每一位译员创建一个用户资料页面。

还有其他插件可以完成水平比较高的机器翻译或团队翻译,但是谁也不能跟Lingotek网竞争(不过您可以聘用专业译员,利用Lingotek的专业版文本编辑器工作)。专业的、高质量的译文能为您的网站带来更多的不会说您母语的用户,

插件可以把您的内容通过云端自动发送到Lingotek服务器上。您可以通过显示框实时跟踪翻译过程,翻译完成后即可将所翻译的内容发送到您的站点。整个流程完全自动化。

Babble (免费)

这款插件是最好的开源插件之一,同WordPress一样,源代码完全开放。

Babble是同类型插件中速度最快的,用开发者的话说,这款插件已经针对快速运行进行了优化。因此,这款插件的加载时间缩短了20%,查询次数减少了40%。只需从GitHub仓库中下载,并按照简要说明进行安装即可使用。

Babble可以把您的网站内容翻译成无限多种语言,只要切换到WordPress仪表盘翻译界面,然后点击任何一篇您想翻译的已存在的文章、页面或分类目录即可进行翻译。

插件能显示两个并列WordPress可视化编辑器面板,一个显示原文,另一个面板是空白的,您可以里面填写自己的译文。

在面板中填写好译文后,在侧边栏放一个专用小工具,您的用户只需点击一个按钮,便能用他需要的语言阅读您的内容了。

qTranslate-X (免费)

qTranslate-X

在几年时间里qTranslate都是WordPress官方仓库最好用的插件之一。但是随着时间的推移,其更新频率越来越慢,只是暂时还没有被彻底舍弃,2015年还没有从仓库中删除。

qTranslate-X是一款从qTranslate修复的插件,这也说明已经很少有人用它了。实际上新版插件也有很多原版qTranslate所没有的新功能.

这款插件类似Polylang。安装后需要选择默认源语言及添加到自己站点的其他语言,并为每种支持语言创建唯一的双字母编码。不过,qTranslate-X为了方便您,预先为25种最通用的语言设定了国旗图标和编码。

语言代码可以显示出内容是用哪种语言撰写的。这也有利于搜索引擎优化。通过将每一种文字都记录到唯一的URL地址上,搜索引擎可以数次将您的内容进行指数化。

用户访问您的站点时,会自动定位到以他需要的语言显示的页面。他们也可以利用专用小工具切换语言.

您也可以在工具栏上方选择需要的语言进行切换.您很容易就能找到它,这样您就不会因为不懂语言而不知所措了。

用这款插件只能进行人工翻译。您找到WordPress可视化编辑器,就能看到全部已启用语言的国旗图标。您可以点击这些图标切换每种语言的文本编辑器,无需重新加载语言页面。这意味着您可以同时用多种语言撰写内容。

您还可以利用qTranslate-Х让任意文本区显示多语言。比如,除了“购买”按钮显示其他语言外,您想让你的其他全部内容都显示为英文,这样,这款插件就能帮助您翻译成各种语言了。

而且还有其他插件可以确保qTranslate-X和一些更为常用的WordPress插件相互配合使用,包括:

  • WooCommerce and qTranslate-X
  • Yoast SEO and qTranslate-X
  • All in One SEO and qTranslate-X
  • Gravity Forms and qTranslate-X
  • WPBakery Visual Composer and qTranslate-X

所有这些插件,包括会员版,都能从WordPress官方仓库中免费获取。

MultilingualPress (免费)

multilingual-press

MultilingualPress不同于本文介绍的其他插件,它使用的是WordPress Multisite,所以您可以用它让您不同语言、不同版本的站点,例如yourdomain.co.uk、yourdomain.de 和yourdomain.es相互连通

您可以用它连接无数站点。您要做的一切不过是为您的每个站点设定默认语言而已。用户可以利用专用小工具或者添加到每篇文章中的链接来使用自己的母语。

虽然“家族”中的每个站点都是完全独立的,但是MultilingualPress 可以在一个页面上编辑全部文章。同时,不用切换站点即可添加任何已经翻译完的文章,这样就加快了翻译速度,简化了翻译流程。
MultilingualPress 还有个优点,就是它能把您站点分别翻译的版本联系起来,以确保它们之间能够相互链接。插件禁用后,这些分别翻译的版本还会继续存在,同插件被启用时是一样的。
还有一款插件能帮您从WPML换成MultilingualPress。

结论

最后要说的是,如果您还想让其他地区的用户访问您的站点,可以看看Google Analytics,确定您的站点在哪些地方最受欢迎,然后考虑一下是否需要把您的站点内容翻译成当地语言。
您可能已经发现,这篇评论文章中提到的大多数插件下载、安装和使用都不受限制。这就将风险降到了最低限度,能够帮助WordPress用户展示自己的语言能力,动手对内容进行翻译。
究竟该选哪款插件呢?这通常取决于您打算怎么使用它。

同其他插件相比,翻译插件的工作原理差别可能更大。某些插件要求您提供译文,同时另一些插件使用的则是自动化服务。有些插件会把译文发送到单个URL地址,同时另一些插件则使用WordPress Multisite。两种完全相同的插件是没有的。

您要考虑一下您想怎么翻译您的内容,然后再决定具体选哪一款插件。这里所介绍的全部插件都是可以找到的,所以无论您选择哪一款,都能获得高质量译文。

7款最好用的 WordPress 多语言翻译插件,首发于蓝月网络。

]]>
WP Rocket排除动态文件名 https://lanyueer.com/wp-rocket-exclude-dynamic-file-name/ Thu, 18 Aug 2016 14:12:13 +0000 http://lanyueer.com/?p=668 动态修改文件名 大多数情况下,当你想从最小化排除CSS文件,将有一个简单的文件名如 style.css。从最小…

WP Rocket排除动态文件名,首发于蓝月网络。

]]>
动态修改文件名

大多数情况下,当你想从最小化排除CSS文件,将有一个简单的文件名如 style.css。从最小化中排除这种类型的文件是很简单的。因为文件名从不会改变。如果不会可以查看下面的教程:

WP-Rocket解决最小化问题

然而,有时您可能看到主题或插件使用了 动态文件名。最典型的莫过于 The7 主题。其使用了动态文件名如style-12345678.css这个数字是变化的。

也就是说如果你排除了style-12345678.css,实际上可能没有效果,因为文件名变成了style-98765432.css.

从最小化中排除动态文件名

如何成功地从最小化排除CSS文件? 我们将使用正则表达式来处理这个问题。

通过查看源代码发现the7主题的css如下:

file-V0CgDBh0LA

这些动态文件如下:

main-07f3e342a4.css?v=2.3.5
custom-07f3e342a4.css?v=2.3.5
media-07f3e342a4.css?v=2.3.5

文件结构如下:

[基本文件名]-[动态扩展].css?v=[版本号]

我们可以不考虑版本号,保留基本文件名,动态扩展使用正则,也就是说变得部分使用正则。

因此如下:

main-(.*).css
custom-(.*).css
media-(.*).css

最后在排除的css如下:

css-min

 

WP Rocket排除动态文件名,首发于蓝月网络。

]]>
WP-Rocket解决最小化问题 https://lanyueer.com/wp-rocket-solve-the-minimization-problem/ Thu, 18 Aug 2016 14:04:31 +0000 http://lanyueer.com/?p=663 如果您激活了WP Rocket最小化特色 (文件最小化),有时会发现网站存在一些外观问题。这可能是部分CSS/…

WP-Rocket解决最小化问题,首发于蓝月网络。

]]>
如果您激活了WP Rocket最小化特色 (文件最小化),有时会发现网站存在一些外观问题。这可能是部分CSS/JS文件并不适合最小化。在启用最小化后,您的网站看上去“撑破了”,下面我们就此问题提供解决方案。

警告: 如果您的网站当前使用了不久即来/密码保护插件,这是对游客隐藏内容的,或授权HTTP访问,最小化不工作,您必须关闭保护才可使用 。

检测问题文件

不是所有的文件都是可以最小化和合并的。解决办法是排除 检测到的问题文件。

按下面的方法进行:

1
关闭所有最小化。
2
使用下面的工具生成所有的js和css文件:
wp-rocket.me/tools/wp-rocket/debug/minify最需要把您的网址放到wprocketliu

然后,点“Get css & JS Files”。

file-WkMEOPH0Fo

3
复制所有的js和css进入排除的选项。wp-rocketjs
4
重新开启最小化
5
然后一个一个删除,进行测试,直到合适为止。

如果你外部文件引起的,请查看:

WP Rocket最小化时如何排除外部JS

 

WP-Rocket解决最小化问题,首发于蓝月网络。

]]>
WP Rocket最小化时如何排除外部JS https://lanyueer.com/rocket-wp-exclude-external-js/ Thu, 18 Aug 2016 14:01:14 +0000 http://lanyueer.com/?p=661 有时对于一个外部 JavaScript文件和最小化存在问题。外部文件不可能最小化,但是它们被移到页面顶部。为了…

WP Rocket最小化时如何排除外部JS,首发于蓝月网络。

]]>
有时对于一个外部 JavaScript文件和最小化存在问题。外部文件不可能最小化,但是它们被移到页面顶部。为了阻止发生,您可能需要借助MU插件或在主题functions.php文件中修改。按照下面的WP Rocket教程操作。

例如您注意到下面的js文件:

https://cdnjs.cloudflare.com/ajax/libs/Flowtype.js/1.1.0/flowtype.min.js

…这个 您必须从WP Rocket’s文件优化中排除的地址部分 类似这样:

cdnjs.cloudflare.com

同理,您可以处理其它的外部文件地址,仅域名或子域名。

通过自定义MU(必须使用)插件排除

1
创建 mu-plugins 文件夹,在你的网站 wp-content 文件夹下.
2
使用文本编辑器 创建新的文件 并放下面的代码进去。

&lt;?php
defined( 'ABSPATH' ) or die( 'Cheatin’ uh?' );
/**
 * Plugin Name: WP Rocket | External Script Handler
 * Description: Exclude external scripts from WP Rocket’s file optimization.
 * Author:      WP Rocket Support Team (Jonathan)
 * License:     GNU General Public License v3 or later
 * License URI: http://www.gnu.org/licenses/gpl-3.0.html
 */
 
/**
 * Exclude external scripts from WP Rocket’s file optimization.
 * @param  array  $external_js Array of external domains
 * @return array               Extended array of external domains
 */
function __fix_wprocket_excluded_external_js( $external_js ) {
 
	/**
	 * Replace with your external script domain.
	 */
	$external_js[] = 'cdnjs.cloudflare.com';
 
	return $external_js;
}
add_filter( 'rocket_minify_excluded_external_js', '__fix_wprocket_excluded_external_js' );
3
保存为 wp-rocket-external-js.php
4
上传这个文件 至 mu-plugins 文件夹中.
5
最后 停用并激活 WP Rocket.

通过您的主题排序

把下面的代码放入子主题或您的主题的 functions.php 文件中。

/**
 * Exclude external scripts from WP Rocket’s file optimization.
 * @param  array  $external_js Array of script URL fragments
 * @return array               Extended array of script URL fragments
 */
function __fix_wprocket_excluded_external_js( $external_js ) {
 
	/**
	 * Replace with your external script URL part.
	 */
	$external_js[] = 'cdnjs.cloudflare.com';
 
	return $external_js;
}
add_filter( 'rocket_minify_excluded_external_js', '__fix_wprocket_excluded_external_js' );

WP Rocket最小化时如何排除外部JS,首发于蓝月网络。

]]>
WP Rocket没有缓存的原因分析 https://lanyueer.com/reason-analysis-of-rocket-wp-without-cache/ Thu, 18 Aug 2016 13:56:03 +0000 http://lanyueer.com/?p=659 如果您的WP Rocket没有缓存或没有最小化您的CSS和JS文件,可能是没有满足最小化需求。或者可能是以前安…

WP Rocket没有缓存的原因分析,首发于蓝月网络。

]]>
如果您的WP Rocket没有缓存或没有最小化您的CSS和JS文件,可能是没有满足最小化需求。或者可能是以前安装了其他缓存插件,如果安装了,可能存在未清除的文件和留下了配置。

为了正确的工作, WP Rocket需要下面的要求:

1、WP-config.php 需要可写.
确保下面的一行在文件顶部。如果离顶部太远,可能不工作!

  1.  /** Enable Cache by WP Rocket */
  2. define( 'WP_CACHE', true );

确保没有其它插件流行的参数,例如Super Cache遗留下面的:

  1. define( 'WPCACHEHOME', '/path-to-your-wordpress-install/wp-content/plugins/wp-super-cache/' ); //Added by WP-Cache Manage

2、确保 wp-content/cache 文件夹具有 可写权限 并且里面有两个文件夹: /min 和 /wp-rocket
并且它们都是可写的。
如果这些文件夹不存在,那你应该手动创建他们。如果之前使用过其他缓存插件,可能会有它们自己的文件夹。在wp-content/cache 文件夹里, 仅有两个 WP Rocket创建的是 /min 和 /wp-rocket。所有其他的都应该删除。Super Cache 在wp-content创建的 wp-cache-config.php 文件夹应该被删除。W3 Total Cache 在 wp-content 创建的应该被删除:
文件夹: /w3tc-config
文件: object-cache.php, db.php
并且在 wp-content/cache 创建的文件夹应该被删除:

/config
/db
/object
/page_enhanced
/minify
还可能基于你的设置创建其它的。

3、检查 .htaccess 文件是否可写。

4、确保在wp-content中 advanced-cache.php 文件仅是 WP Rocket参数。

5、确保一个 wp-rocket-config 文件夹出现在 wp-content。如果没有,创建并有可写权限

6、如果您 使用了域名映射进行了多站点安装,试着登录您的域名区,使用映射的域名替代原始域名,然后停用 / 重新激活 WP Rocket。这将启用 WP Rocket 去检测正确的域名并重新缓存。

7、有时另一个插件设置了常数 不缓存页面 。这会重写所有的缓存插件,因此需要移除
两个已知的插件添加不要缓存( DONOTCACHEPAGE )常数: s2 Member 和WooCommerce Klarna Gateway.

8、如果您使用了SSL,确保勾选了 SSL 缓存选项。

在调整后,应该停用/重新激活WP Rocket.

然后您可以通过:
如何检查WP Rocket是否缓存了你的页面?

如何检查WP Rocket是否缓存了你的页面?

  在检查前,先退出您的网站。除非您启用了“为登录用户建立缓存。”这个选项(在基本选项卡里)。如果没有启用,对于登录用户,是无法看到缓存页面的。 要检查WP Rocket是否缓存了你的页面: 1 浏览网页源代码,在网页的最底部会看到。 最后一行的WP Rocket这个字样,表示缓存了。 注意: 如果您激活了 CloudFlare’s...


查看缓存情况。

其他服务器需求
mod_expire 和 mod_deflate 应该被启用
不要限制tmp临时文件夹
curl_exec 函数应该被启用

WP Rocket没有缓存的原因分析,首发于蓝月网络。

]]>
如何检查WP Rocket是否缓存了你的页面? https://lanyueer.com/check-wp-rocket/ Thu, 18 Aug 2016 13:50:53 +0000 http://lanyueer.com/?p=654   在检查前,先退出您的网站。除非您启用了“为登录用户建立缓存。”这个选项(在基本选项卡里)。如果没…

如何检查WP Rocket是否缓存了你的页面?,首发于蓝月网络。

]]>
 

在检查前,先退出您的网站。除非您启用了“为登录用户建立缓存。”这个选项(在基本选项卡里)。如果没有启用,对于登录用户,是无法看到缓存页面的。

要检查WP Rocket是否缓存了你的页面:

1

浏览网页源代码,在网页的最底部会看到。

wp-rocket-soucer

最后一行的WP Rocket这个字样,表示缓存了。

注意: 如果您激活了 CloudFlare’s HTML 最小化,有时看不到这个注释,但是您可以看到下面两个项目。

2

如果您使用了最小化,您会在网页源代码头部看到,地址包括/wp-content/cache/min/ :

file-6TTHkxNfxz

3

您可以安装 Chrome 或  Firefox 浏览器扩展browser extension Wappalyzer ,其会检查到 WP Rocket 激活。

4

或者使用 FTP, 或您的网站在线文件管理,您可以在服务器上查看到缓存文件 。

首先在退出网站管理,访问几个页面。

然后浏览到: wp-content/cache/wp-rocket
这里您会看到您的完整的文件夹,在里面您会看到一些 .html 和 html_gzip 文件,这些就是缓存文件:

file-cWHOMT8fqj

通过这些方法,如果还不能检查WP Rocket缓存了你的页面,那么可能存储权限和冲突问题。

 

如何检查WP Rocket是否缓存了你的页面?,首发于蓝月网络。

]]>
Yoast WordPress SEO 设置教程 https://lanyueer.com/yoast-wordpress-seo-tutorails/ Sun, 24 Jul 2016 01:38:46 +0000 http://lanyueer.com/?p=626 我们都知道,WordPress本身对搜索引擎的优化是非常友好的,除了主题的本身前端结构的优化,WordPres…

Yoast WordPress SEO 设置教程,首发于蓝月网络。

]]>
我们都知道,WordPress本身对搜索引擎的优化是非常友好的,除了主题的本身前端结构的优化,WordPress自身的ping机制,以及固定连接的设定等等,对seo优化都非常不错。

但是如果你想要增强这种优化水平,那么还需要WordPress的seo插件支持,这样能够全面的提升你的网站seo的效率,今天我们就来教大家使用一款在WordPress插件排名非常靠前并且评价非常高的seo插件《Yoast WordPress SEO》
初步设置
安装完成之后,你可以看到后台会多了一个“seo”的选项:

seo_ds923

这款主题的后台设定是中文的,所以看起来非常容易设置,你可以按照下图的方法进行设置:

控制面板: 你可以按照中文提示来决定是否使用其中的功能,一般默认即可。

标题&元标记–常规

1.强制重写标题   : 如果你在SEO插件中修改了标题,但是网站却显示默认标题 ,那么你需要勾选这个选项,他会完全替换掉默认的标题

2.Title Separator: 标题与副标题的分割字符选择

3.站内meta设置: 这里勾选”

4.清理header:如果你的主题没有提供清理header的功能,你可以勾选上,WEB主题公园的主题一般都提供了这个功能

 

标题&元标记–首页、文章、分类、其他

这里是如果你没有特别设定首页、文章、分类、页面和其他的关键词、描述等信息,他们就会调用这里的默认信息。

标题、元关键词、元描述是使用的变量调用的(变量是一个类似于代数的符号,它对应会调用一些你的网站中的信息,比如%%title%%  ==  文章/页面/分类等的标题)

下面是这个插件的变量所代表的你网站中调用信息,你可以填写这些变量,让你的网站自动调用这些信息,也可以直接填写固定的关键词和描述(文字,汉字或者英文)
%%date%% 文章/页面的日期
%%title%% 文章/页面的标题
%%sitename%% 站点名称
%%sitedesc%% 站点副标题/描述
%%excerpt%% 文章/页面摘要(如不存在则自动生成)
%%excerpt_only%% 文章/页面摘要(不自动生成)
%%tag%% 当前标签
%%category%% 文章分类目录(半角逗号分隔)
%%category_description%% 分类目录描述
%%tag_description%% 标签描述
%%term_description%% 项目描述
%%term_title%% 项目名称
%%pt_single%% 文章形式(单数)
%%pt_plural%% 文章形式(复数)
%%modified%% 文章/页面的修改时间
%%id%% 文章/页面的ID
%%name%% 文章/页面作者的昵称
%%userid%% 文章/页面作者的用户名
%%searchphrase%% 当前搜索词
%%currenttime%% 当前时间
%%currentdate%% 当前日期
%%currentday%% 当前天
%%currentmonth%% 当前月
%%currentyear%% 当前年
%%page%% 当前页码(如第2页/共4页)
%%pagetotal%% 当前总页数
%%pagenumber%% 当前页码
%%caption%% 附件标题
%%focuskw%% 文章目标关键词
%%term404%% Replaced with the slug which caused the 404 %%cf_%% 文章的自定义栏目值
%%ct_%% 文章自定义分类,以半角逗号分隔
%%ct_desc_%% 自定义分类描述

%%sep%% 当前主题wp_title()里的分隔符

自己可以选择以上变量填写进你的关键词元标记和元描述,如果你没有特别在单个文章或者页面中设置,默认会调用他们,

Robots元标记 索引: 这个勾选了就不会让搜索引擎搜索到了,一般不要勾选

其他两项设置看你自己的需求是否勾选。日期勾选的话有利于搜索引擎显示你的文章发布时间。

社会化

社会化是这款插件对应的英文用户使用的社会化,如果你是英文用户可以使用,中文的就不需要设置了

XML站点地图

这个需要你勾选,描述比较清晰,你可以按照自己的想法勾选这些选项,注意的是 勾选完成保存之后 请点击“查看你的XML站点地图”  将弹出的xml地图的url(地址)复制下来,放到你的首页(可以通过友情链接、或者其他的链接放进首页, 然后去百度统计中的提交站点地图)

百度站点地图(Sitemap)xml地图的提交方式:

登陆百度站长平台,点“站点管理”-“添加网站”,在文本框里输入你的网站域名,点“添加网站”完成网站的添加。

seo_baidu

然后点击“数据提交”-“sitemap”-“定时更新”-“添加新数据”,在新出现界面里选择你的域名,更新周期里推荐填写1天,数据文件地址如图所示填写,最后填写验证码提交。

seo_baidu2

这样再回到SITEMAP里你就可以看到一条记录,这就是你向百度提交的网站地图。

这样xml地图就可以ok了,谷歌或者其他的站点地图提交类似,你可以百度一下用法,这里就不再做阐释了。

 

后面的设置基本上也不用过多的解释,插件的中文介绍比较完善,你可以根据自己的要求去填写好

 

单篇文章、分类目录、页面的独立设置seo

这款插件最大的易用性在于可以在单篇文章、页面、分类目录设置SEO。这些设置之后会覆盖默认的seo设置,达到每一篇文章、页面和分类都有不同的seo标记,方便实用。

设置方法也非常简单,点击单篇文章、分类和页面的编辑按钮,可以看到下面有了一个SEO设置,填写即可:

seo22

此外在单篇文章中,可以检测SEO的状态,你可以根据他的提示讲SEO的状态提升为最佳(SEO状态检测经过测试并不是很准确,可能是检测中文字符存在一些兼容的问题,你按照上面的方法都做一遍,觉得都做到了就行了,也不必去管他的SEO提示,当然如果你有强迫症,你也可以研究下如何达到绿色的状态,并分享给我们)

seo11227

到这里,这款插件的用法就介绍完成了。

Yoast WordPress SEO 设置教程,首发于蓝月网络。

]]>
WordPress 文章表态插件:Reaction Buttons https://lanyueer.com/reaction-buttons/ Fri, 10 Jun 2016 14:39:26 +0000 http://lanyueer.com/?p=604 你是否想提高网站用户粘性?每个人再看过一篇文章之后都会默默对文章产生一个评价,而这些评价可以帮助你改善网站的用…

WordPress 文章表态插件:Reaction Buttons,首发于蓝月网络。

]]>
你是否想提高网站用户粘性?每个人再看过一篇文章之后都会默默对文章产生一个评价,而这些评价可以帮助你改善网站的用户体验,然而,不是所有用户都会去评论区留言,把他们的想法告诉你,因为这很麻烦。

很多的网站文章末尾都会有一个表态区,直接点击对应的按钮就能反映出用户对文章的看法,非常简单,用户也很乐意用这样的方式表达态度。

你也想要这样的功能?如果你使用的是 WordPress,那就简单了,有一个插件可以帮助你实现这个功能。

首先要安装并启用 Reaction Buttons 插件,启用后,进入后台的 “设置” → “Reaction Buttons” 进行插件设置。

WordPress 文章表态插件:Reaction Buttons

第一个选项用来设置是否显示表态按钮。

接下来设置表态按钮出现的位置,可以在文章前、文章后,或者使用 [reaction_buttons] 简码手动调用。

然后进入第三个选项,设置按钮上方的引导语。

下一个选项可以设置都有哪些按钮,每个用逗号(“,”)隔开。

其它选项不再多做介绍。

保存之后,前台就能看到表态按钮了。

WordPress 文章表态插件:Reaction Buttons

自定义按钮样式

这些按钮的设计非常简单,可能不符合你的网站的配色,如果你会使用 CSS,可以自定义按钮的样式。

首先到插件的设置页面,滚动到最下边,找到 “Use CSS”,在这里禁用默认的 CSS 样式(取消勾选)。

WordPress 文章表态插件:Reaction Buttons

然后把自定义 CSS 代码放到主题或子主题的 CSS 文件中。

下边是我的自定义 CSS:

div.reaction_buttons:after {
    content: '';
    clear: both;
    display: block;
    height: 0;
}
 
div.reaction_buttons .reaction_buttons_tagline {
    font-size: 18px;
    border-bottom: 1px solid #E5E5E5;
    line-height: 35px;
}
 
div.reaction_buttons .reaction_button {
    background: #FAFAFA;
    text-decoration: none;
    display: block;
    float: left;
    color: #333;
    margin-right: 10px;
    padding: 5px 10px;
    border: 1px solid #E5E5E5;
    cursor: pointer;
}
 
div.reaction_buttons .reaction_button:hover {
    opacity: .8;
}

显示出来是这个样子的:

WordPress 文章表态插件:Reaction Buttons

插件主页

插件主页:https://wordpress.org/plugins/reaction-buttons/

WordPress 文章表态插件:Reaction Buttons,首发于蓝月网络。

]]>
WordPress无插件自动实现tag关键字内链,抛弃wp-keyword-link https://lanyueer.com/wordpress-tag-keyword-link/ Sat, 16 Apr 2016 08:34:26 +0000 http://lanyueer.com/?p=586 之前一直使用WP keyword link这个插件给文章中的关键字增加内链,以优化SEO。但插件多了对博客的速…

WordPress无插件自动实现tag关键字内链,抛弃wp-keyword-link,首发于蓝月网络。

]]>
之前一直使用WP keyword link这个插件给文章中的关键字增加内链,以优化SEO。但插件多了对博客的速度肯定有影响,所以找了个无插件实现的方法。实现起来也很简单,只需在主题文件夹中的function.php最后一个?>之前增加以下代码即可实现tag自动内链:

  1. //tag自动内链
  2. $match_num_from = 1;  //一篇文章中同一个关键字少于多少不锚文本(这个直接填1就好了)
  3. $match_num_to = 2; //一篇文章中同一个关键字最多出现多少次锚文本(建议不超过2次)
  4. //连接到WordPress的模块
  5. add_filter('the_content','tag_link',1);
  6. //按长度排序
  7. function tag_sort($a, $b){
  8. 	if ( $a->name == $b->name ) return 0;
  9. 	return ( strlen($a->name) > strlen($b->name) ) ? -1 : 1;
  10. }
  11. //改变标签关键字
  12. function tag_link($content){
  13. global $match_num_from,$match_num_to;
  14. 	 $posttags = get_the_tags();
  15. 	 if ($posttags) {
  16. 		 usort($posttags, "tag_sort");
  17. 		 foreach($posttags as $tag) {
  18. 			 $link = get_tag_link($tag->term_id);
  19. 			 $keyword = $tag->name;
  20. 			 //连接代码
  21. 			 $cleankeyword = stripslashes($keyword);
  22. 			 $url = "<a title="\"".str_replace('%s',addcslashes($cleankeyword," href="\"$link\"" target="_blank">".addcslashes($cleankeyword, '$')."</a>";
  23. 			 $limit = rand($match_num_from,$match_num_to);
  24.  
  25. 			//不连接的代码
  26.                          $content = preg_replace( '|(<a[^>]+>)(.*)('.$ex_word.')(.*)(]*>)|U'.$case, '$1$2%&&&&& %$4$5', $content);
  27. 			 $content = preg_replace( '|(<img)(.*?)('.$ex_word.')(.*?)(>)|U'.$case, '$1$2%&&&&& %$4$5', $content);
  28.  
  29. 				$cleankeyword = preg_quote($cleankeyword,'\'');
  30.  
  31. 					$regEx = '\'(?!((<.*?)|(<a.*?)))('. $cleankeyword . ')(?!(([^<>]*?)>)|([^>]*?))\'s' . $case;
  32.  
  33. 				$content = preg_replace($regEx,$url,$content,$limit);
  34.  
  35. 	$content = str_replace( '%&&&&& %', stripslashes($ex_word), $content);
  36.  
  37. 		 }
  38. 	 }
  39.     return $content;
  40. }

更新你的博客看看,是不是已经有效果啦?

WordPress无插件自动实现tag关键字内链,抛弃wp-keyword-link,首发于蓝月网络。

]]>
几款WordPress二维码生成插件深入比较 https://lanyueer.com/wordpress-dimensional-code-plugins/ Wed, 13 Apr 2016 03:11:25 +0000 http://lanyueer.com/?p=565 现在二维码的应用已经很普及了,在我们的每个网站上都可以看见,比如右下角的当前页二维码。一般我们用qrserve…

几款WordPress二维码生成插件深入比较,首发于蓝月网络。

]]>
现在二维码的应用已经很普及了,在我们的每个网站上都可以看见,比如右下角的当前页二维码。一般我们用qrserver.com的在线生成器就能轻松在页面上实现任何文本的二维码,不过有时候qrserver.com服务器响应会变慢,甚至当掉,这样二维码就显示不出来了。而且使用qrserver.com这个资源的人越来越多,服务器压力的增加使得它的可靠性正在变低,是时候找一些替代方案了。于是我尝试了WordPress后台能搜到的几款人气看上去不错的二维码插件,做一下总结。

后台搜索关键词: QR Code

1. QR Code

和关键词同名的插件,自然是牌第一了,激活量不错。使用[qrcode url="http://abc.com" margin="10" size="100" before="QR Code" after="QR Code"]
这样的短代码在任何地方生成二维码。不过这款插件本身就是qrserver.com接口生成二维码的,因此没有任何可靠性的增加,果断放弃。

2. QR Code generator


也提供了相似短代码[qrcode content="CONTENT" size="120" alt="ALT_TEXT" class="CLASS_NAME"]
但在国内连上一款都不如,因为它用了googleapi,直接被墙… 选用插件的时候一定要注意很多WordPress插件都依赖googleapi,这在墙外是很正常的行为,在国内却行不通,这就大大缩小了我们的选择范围。

3. QR Code generator by Unitag


这款插件比起前两款来要强大很多,它是在WordPress的uploads文件夹下即时生成一张JPG格式图片作为二维码,这几乎已经符合我的要求了。然而在实际测试中它还有一个小问题没有解决 – 在使用CDN自动分发图片资源的网站环境中,这张即时生成的JPG不能第一时间被同步到分发网络上,这就导致了页面上的二维码要在页面刷新一次以上后,才会自动同步到分发网络上显示出来。对于一些要经常刷新二维码的应用,它就无能为力了,比如支付场景。

…

尝试到这里,我们的目标也渐渐明确了,我们需要的二维码最好是由客户端JS或服务器端PHP直接生成,不需要生成具体文件的。考虑到用PHP生成会耗费一定服务器资源,首选用JS生成。于是在尝试了更多几款后,我找到了:

Javascript QRcode Generator


这款插件使用了base64代码生成二维码图片,可谓绿色无污染。

并且在不支持base64的IE8-浏览器内黑自动降级到table格式显示二维码,这样状态下会使浏览器有一些卡顿,但我们早该淘汰IE8了不是么,况且他还是兼容IE678的。同样它也提供了短代码:

[jsqr msg="http://abc.com"/]

几款WordPress二维码生成插件深入比较,首发于蓝月网络。

]]>
WooCommerce不显示Shop页面标题 https://lanyueer.com/hide-shop-page-title/ Mon, 07 Dec 2015 13:36:53 +0000 http://lanyueer.com/?p=488 WooCommerce Shop页面的默认设置是显示标题,例如Shop页面显示Shop,产品分类页面显示类别名…

WooCommerce不显示Shop页面标题,首发于蓝月网络。

]]>
WooCommerce Shop页面的默认设置是显示标题,例如Shop页面显示Shop,产品分类页面显示类别名称,可以在functions.php文件中插入以下代码不显示标题。

  1. add_filter( 'woocommerce_page_title', 'woo_shop_page_title');
  2. function woo_shop_page_title( $page_title ) {
  3.     if( 'Shop' == $page_title) {
  4.     return "";
  5.     }
  6. }

也可以在return "";引号中添加自定义标题。

参考资料
My 25 Best WooCommerce Snippets For WordPress No.13

WooCommerce不显示Shop页面标题,首发于蓝月网络。

]]>
WooCommerce有用的代码 https://lanyueer.com/woocommerce-useful-code/ Mon, 07 Dec 2015 13:28:05 +0000 http://lanyueer.com/?p=487 本文汇总了WooCommerce代码,使用方法是插入到主题functions.php文件中,建议使用子主题。 …

WooCommerce有用的代码,首发于蓝月网络。

]]>
本文汇总了WooCommerce代码,使用方法是插入到主题functions.php文件中,建议使用子主题。
产品页面
删除产品页面Product Description标题

  1. // Remove "Product Description" heading on Single Product page
  2. function remove_product_description_heading() {
  3. return '';
  4. }
  5. add_filter('woocommerce_product_description_heading', 'remove_product_description_heading');

删除产品页面Product Description, Additional Information, Reviews项

  1. // Disable Product Review (tab) on Single Product page
  2. function remove_product_tabs($tabs) {
  3. unset($tabs['description']);                 // Remove Description tab
  4. unset($tabs['additional_information']);      // Remove Additional Information tab
  5. unset($tabs['reviews']);                     // Remove Reviews tab
  6. return $tabs;
  7. }
  8. add_filter( 'woocommerce_product_tabs', 'remove_product_tabs', 98 );

如果需要保留某一项,可以用//注释掉。

WooCommerce有用的代码,首发于蓝月网络。

]]>
WooCommerce产品页面删除分类 https://lanyueer.com/remove-category-from-woocommerce-single-product-page/ Mon, 07 Dec 2015 13:12:30 +0000 http://lanyueer.com/?p=486 WooCommerce产品页面默认显示产品分类,本文介绍了如何从产品页面删除产品分类。 方法 在functio…

WooCommerce产品页面删除分类,首发于蓝月网络。

]]>
WooCommerce产品页面默认显示产品分类,本文介绍了如何从产品页面删除产品分类。
方法

在functions.php文件中添加代码,建议使用子主题

  1. // Remove Category from Single Product page
  2. remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 );

代码解释
WooCommerce产品页面模版为single-product.php,通过以下语句调用content-single-product.php模版文件

  1. <?php wc_get_template_part( 'content', 'single-product' ); ?>

content-single-product.php模版文件中对挂钩 (Hook) 进行了详细的代码注释

  1. <?php
  2.      /**
  3.       * woocommerce_single_product_summary hook
  4.       *
  5.       * @hooked woocommerce_template_single_title - 5
  6.       * @hooked woocommerce_template_single_rating - 10
  7.       * @hooked woocommerce_template_single_price - 10
  8.       * @hooked woocommerce_template_single_excerpt - 20
  9.       * @hooked woocommerce_template_single_add_to_cart - 30
  10.       * @hooked woocommerce_template_single_meta - 40
  11.       * @hooked woocommerce_template_single_sharing - 50
  12.       */
  13.      do_action( 'woocommerce_single_product_summary' );
  14. ?>

woocommerce_single_meta通过woocommerce_single_product_summary挂钩40调用。

WooCommerce产品页面删除分类,首发于蓝月网络。

]]>
Woocommerce的索引页面模板archive-product.php无法被调用问题 https://lanyueer.com/woocommerce-archive-product/ Sat, 28 Nov 2015 09:56:55 +0000 http://lanyueer.com/?p=477 最近在用WordPress+Woocommerce开发一个商城网站,一步一步抽丝剥茧的尝试修改着Woocomm…

Woocommerce的索引页面模板archive-product.php无法被调用问题,首发于蓝月网络。

]]>
最近在用WordPress+Woocommerce开发一个商城网站,一步一步抽丝剥茧的尝试修改着Woocommerce提供的默认主题。其实Woocommerce的主题定制逻辑挺简单,把Woocommerce插件中的templates文件夹整个复制到自己的主题中,重命名woocommerce,即可任意修改。购物车、产品内页、帐号管理等页面都能顺利修改。唯独商品索引页面,我在archive-product.php反复尝试修改覆盖源文件,都没效果。

最后谷歌找到答案,解决方法如下:
在第三方主题里面增加woocommerce文件夹,为了使原主题能兼容Woocommerce,一般都会在主题目录下增加一个woocommerce.php
详细方法见这里:http://docs.woothemes.com/document/third-party-custom-theme-compatibility/。
这个粗略方法就是导致archive-product.php没有被正确调用的原因。

只需要找到主题根目录下woocommerce.php中的这一行:

  1. woocommerce_content();

替换成

  1. if ( is_singular( 'product' ) ) {
  2. 	woocommerce_content();
  3. }else{
  4. 	woocommerce_get_template( 'archive-product.php' );
  5. }

即可解决问题。

Woocommerce的索引页面模板archive-product.php无法被调用问题,首发于蓝月网络。

]]>
Query Monitor – WordPress项目开发必备插件推荐 https://lanyueer.com/query-monitor/ Sat, 28 Nov 2015 09:51:38 +0000 http://lanyueer.com/?p=471 如果你正在进行基于WordPress的网站开发,Query Monitor这款插件会对你起到很大的帮助。顾名思…

Query Monitor – WordPress项目开发必备插件推荐,首发于蓝月网络。

]]>
如果你正在进行基于WordPress的网站开发,Query Monitor这款插件会对你起到很大的帮助。顾名思义,Query Monitor提供了一系列查询监控,可以在WordPress前台/后台任何一个页面给出当前页的数据库查询次数、耗费时间等详细数据,对优化项目提供 一定的参数依据。

安装插件后,以管理员身份登录网站,页面顶部菜单会多出一组数据(如图)
Query Monitor - WordPress项目开发必备插件推荐

图中”1.24s”是页面大致的加载时间;
“60.00MB”是当前页消耗主机峰值内存量,可以看得出WordPress是有点吃内存的;
“0.0798s”是当前页所执行的数据库查询时间;
“70Q”是当前页面数据库查询的次数(70次查询数字看似挺大,但耗时到也不多)
点击这组数据,页面会滚动到底部,并且出现几张大表,展示每次查询所花费的时间、查询命令,以及原生的数据库查询情况。这对深入了解WordPress各种查询命令非常有用。开发者也可以借此了解哪些查询会拖慢网站速度,增加服务器负担,从而酌情进行优化。

鼠标移到菜单项,可以看到Query Monitor所提供的所有数据:
Query Monitor菜单一览
其中最后几条绿色的函数名很熟悉吧?这能节约开发者不少时间去验证自己的模板调用状况。

菜单项第五条:“Template:…”直接显示当前页面调用了哪个模板。模板多的时候也不再担心混淆了

再来看看WordPress开发者最关心的Hooks监控:
Query Monitor Hooks监控
这里能查到当前页都用到了哪些“钩子”,帅!

前端同学比较在意的(只能查到用wp_enqueue_script和wp_enqueue_style注册过的JS和CSS,直接写在HTML里的这里不会显示):
Query Monitor JS/CSS调用

服务器环境:
Query Monitor 服务器环境

此外,如果当前页面PHP程序或HTTP Request等出现问题,Query Monitor也会做出提示,很贴心。

Query Monitor本身并不会增加后端负担,更不对数据库进行任何操作,在前端也只是在管理员登录状态下多显示几张查询表。是一款很“绿色”的插件,全五星的好评就是它最好的证明。
最后,插件主页:https://wordpress.org/plugins/query-monitor/

Query Monitor – WordPress项目开发必备插件推荐,首发于蓝月网络。

]]>
WordPress不同分类/页面显示不同侧边栏插件 – Widget Logic https://lanyueer.com/widget-logic/ Tue, 17 Nov 2015 05:57:38 +0000 http://lanyueer.com/?p=462 Widget logic 插件帮助我们实现不同的分类或页面显示不同侧边栏。WordPress 本身的侧边栏功能…

WordPress不同分类/页面显示不同侧边栏插件 – Widget Logic,首发于蓝月网络。

]]>
Widget logic 插件帮助我们实现不同的分类或页面显示不同侧边栏。WordPress 本身的侧边栏功能基本都是全站调用的,这样对于某些特殊功能需求的站点来说无法满足需求。如何让不同的页面显示不同的侧边栏呢?Widget logic 侧边栏管理插件就很好的实现了这一功能。

Widget Logic 侧边栏管理插件给每个 widget 一个扩展控制 Widget logic,你可以通过它根据不同页面自定义你的侧边栏内,只需要在 widget 新增的 Widget logic 选项里加入相应的标记代码,就可以轻松实现网站的侧边栏的管理,实现你的个性化设置。

Widget Logic 介绍 :简单、直接,但需要简单的写代码技能;推荐

Widget Logic 是最简单、直接的实现微件的条件控制功能的插件。这是它最大的优点,也是缺点。因为过于简洁,需要使用者自己写条件判断的语句。这就需要使用者首先要熟悉 WordPress 的各种条件标签函数的用法 —— 最少要熟悉自己需要的那几个条件标签的用法。正是因为使用这样的实现方式,使用者可以发挥想象力编写各种复杂的条件语句来实现任意复杂的条件控制。其实 WordPress 的条件标签也很简单,看看文档基本上都会了。

WordPress 实现边栏小工具按需显

步骤1:添加“最新日志”选项到侧边栏

登录博客的管理后台,然后点击小工具(widget)菜单,拖拽“最新日志”选项到右边的侧边栏,再设置相关标题,显示日志数(例如:5),最后点“save”按钮。

wordpress插件:Widget logic –让你的侧边栏与众不同

步骤2:添加页面显示条件

在所有的小工具底部,有一个选项框,即“widget logic”。在这里输入页面显示条件来控制侧边栏的显示。新手如果不懂不要紧,你可以参看下面的说明来设置: WordPress Codex – Conditional Tags

在本例中,我设定的筛选条件是“除了首页的所有页面“。因为判断首页的函数为:is_home(),那么除了首页的所有页面的语句应该是:!is_home()。在widget logic选项框中输入这个语句,然后保存即可。

wordpress插件:Widget logic –让你的侧边栏与众不同

更多高级的条件判断函数

is_single() -》 判断是否为单篇日志

is_page() -》 判断是否为单个页面

is_page(‘about’) -》判断是否为about页面

is_page(’25’) -》判断是否为id=25的页面

is_archive() -》 判断是否为存档

is_category(‘wordpress’) -》 判断是否为别名是“wordpress“的目录

is_category(’37’) -》判断是否为id=37的目录

has_tag (‘wordpress’) -》 判断是否存在名为“wordpress“的标签

你也可以使用逻辑运算符实现更多的控制。|| 为逻辑“或”,&&为逻辑“与”。

 

实例1

在title为“fruit”的页面或名为“food”的目录页或tag为“banana”的页面显示某一小工具。

  1. is_page(‘fruit’) || is_category(‘food’) || has_tag(‘banana’)

 

实例2

仅在单篇日志并且不是某一指定目录中显示小工具。你需要提供特定目录的id号,而不能用别名或目录名来代替。

  1. is_single() &&!in_category( array(23,30,78))

正如我上面所说的,你可以参看相关文章来学习更复杂的条件判断函数。

WordPress不同分类/页面显示不同侧边栏插件 – Widget Logic,首发于蓝月网络。

]]>
如何让仅注册用户看到Woocommerce产品价格 https://lanyueer.com/only-registered-users-see-woocommerce-price/ Sun, 08 Nov 2015 05:15:43 +0000 http://lanyueer.com/?p=448 add_filter(‘woocommerce_get_price_html’,’members_on…

如何让仅注册用户看到Woocommerce产品价格,首发于蓝月网络。

]]>
add_filter(‘woocommerce_get_price_html’,’members_only_price’);
function members_only_price($price){
if(is_user_logged_in() ){
return $price;
}
else return ‘<a href="’ .get_permalink(woocommerce_get_page_id(‘myaccount’)). ‘">登录</a> 或 <a href="’.site_url(‘/wp-login.php?action=register&amp;redirect_to=’ . get_permalink()).’">注册</a>查看价格!';
}

把这行代码放进你主题的function.php函数里即可。

如何让仅注册用户看到Woocommerce产品价格,首发于蓝月网络。

]]>
如何使用Advanced Custom Fields插件保存的内容? https://lanyueer.com/%e5%a6%82%e4%bd%95%e4%bd%bf%e7%94%a8advanced-custom-fields%e6%8f%92%e4%bb%b6%e4%bf%9d%e5%ad%98%e7%9a%84%e5%86%85%e5%ae%b9/ Wed, 23 Sep 2015 13:07:14 +0000 http://lanyueer.com/?p=362 使用模版函数需要修改模版,ACF也提供了shortcode方式,不需修改模版依然能使用其数据。 模版函数 显示…

如何使用Advanced Custom Fields插件保存的内容?,首发于蓝月网络。

]]>
使用模版函数需要修改模版,ACF也提供了shortcode方式,不需修改模版依然能使用其数据。

模版函数
显示一个字段
field_name代表字段名称,指创建custom field时“Field Name”中填写的内容,只能输入字母和下划线。

<p><?php the_field('field_name'); ?></p>

the_field()的使用类似WordPress的the_title(),直接输出内容。

返回字段的值

the_field()会直接显示字段的值,要返回的话,就要用get的方式

<?php
 
$variable = get_field('field_name');
 
// 现在可以使用$variable了
 
?>

使用前判断值是否存在

如果(value == “” || value == null || value == false),则get_field()返回false,这样就可以先判断值是否存在,再输出

<?php
 
if(get_field('field_name'))
{
echo '<p>' . get_field('field_name') . '</p>';
}
 
?>

处理数组类型的返回值

ACF中image、file等类型可以用数组形式(如选择image object)返回更多的数据,而不仅仅是只返回image url或者file url。

下面的代码演示先用get_field()获取数组,在用foreach循环读取数组元素的方法。

<?php
 
$values = get_field('field_name');
if($values)
{
echo '<ul>';
 
foreach($values as $value)
{
echo '<li>' . $value . '</li>';
}
 
echo '</ul>';
}
 
// 用var_dump()看一看$values的真面目吧
var_dump($values);
 
?>

处理返回url的image类型

如果创建image type时选择返回url,代表返回值是一个字符串,所以显示方法如下

<img src="<?php the_field('image_test'); ?>" alt="" />

处理返回ID的image类型

如果创建image type时选择返回image ID,则返回值会是一个整数,我们当然不想显示整数,要根据这个ID获取更多信息。

<?php $image = wp_get_attachment_image_src(get_field('image_test'), 'full'); ?>
<img src="<?php echo $image[0]; ?>" alt="<?php echo get_the_title(get_field('image_test')) ?>" />

获取Repeater Field的值

Repeater Field是ACF的付费组件,repeater field的值可以由 get_field、 the_repeater_field /the_sub_field获取

<?php
 
// 方法一:直接使用数组方式操作,$rows是一个数组
 
$rows = get_field('repeater_field_name');
if($rows)
{
echo '<ul>';
 
foreach($rows as $row)
{
echo '<li>sub_field_1 = ' . $row['sub_field_1'] . ', sub_field_2 = ' . $row['sub_field_2'] .', etc</li>';
}
 
echo '</ul>';
}
 
// 方法二:使用has_sub_field + get_sub_field的组合获取
 
if(get_field('repeater_field_name'))
{
echo '<ul>';
 
while(has_sub_field('repeater_field_name'))
{
echo '<li>sub_field_1 = ' . get_sub_field('sub_field_1') . ', sub_field_2 = ' . get_sub_field('sub_field_2') .', etc</li>';
}
 
echo '</ul>';
}
 
//方法三:使用the_repeater_field + the_sub_field的组合获取
if(get_field('repeater_field_name')): ?>
 
<ul>
 
<?php while(has_sub_field('repeater_field_name')): ?>
 
<li>sub_field_1 = <?php the_sub_field('sub_field_1'); ?>, sub_field_2 = <?php the_sub_field('sub_field_2'); ?>, etc</li>
 
<?php endwhile; ?>
 
</ul>
 
<?php endif; ?>

随机获取repeater fleid中的一个元素

<?php
 
$rows = get_field('repeater_field_name');
$row_count = count($rows);
$i = rand(0, $row_count - 1);
 
echo $rows[$i]['sub_field_name'];
 
?>

从非当前页面获取数据

<?php
//要获取数据的页面的post ID
$other_page = 12;
 
//直接显示内容
?>
<p><?php the_field('field_name', $other_page); ?></p>
 
<?php
//不直接显示,先将值赋给一个变量
// get variable
$variable = get_field('field_name', $other_page);
 
// 以repeater类型为例 -注意 the_sub_field和get_sub_field函数不需要post ID参数
if(get_field('repeater_field_name', $other_page))
{
echo '<ul>';
 
while(has_sub_field('repeater_field_name', $other_page))
{
echo '<li>sub_field_1 = ' . get_sub_field('sub_field_1') . ', sub_field_2 = ' . get_sub_field('sub_field_2') .', etc</li>';
}
 
echo '</ul>';
}
 
?>

使用ACF的值查询数据

本质是根据custom field的值查询post。

<?php
 
$posts = get_posts(array(
'numberposts' => -1,
'post_type' => 'event',
'meta_key' => 'location', //acf中定义
'meta_value' => 'melbourne'
));
 
if($posts)
{
echo '<ul>';
 
foreach($posts as $post)
{
echo '<li><a href="' . get_permalink($post->ID) . '">' . get_the_title($post->ID) . '</a></li>';
}
 
echo '</ul>';
}
 
?>

Shortcode方式

[acf field="field_name"]

使用这个shortcode,就可以直接在所见即所得编辑器中使用ACF的值,不过有一些局限性:

只能获取当前文章的ACF内容
对repeater field不适用
使用例子

This is a story about a boy named [acf field="name"]. He is [acf field="age"] years old.

参考文档

ACF Code Examples

ACF Shortcodes

如何使用Advanced Custom Fields插件保存的内容?,首发于蓝月网络。

]]>
Contact Form 7插件高级应用 https://lanyueer.com/contact-form-7%e6%8f%92%e4%bb%b6%e9%ab%98%e7%ba%a7%e5%ba%94%e7%94%a8/ Wed, 23 Sep 2015 12:47:37 +0000 http://lanyueer.com/?p=361 WordPress联系表单插件 – Contact Form 7 是一款简单易用扩展性灵活的表单插件,可以自定…

Contact Form 7插件高级应用,首发于蓝月网络。

]]>
WordPress联系表单插件 – Contact Form 7 是一款简单易用扩展性灵活的表单插件,可以自定义各式各样不同类型的表单功能,而且支持自定义接受邮件,Ajax提交和 jQuery表单插件支持.可结合Akismet过滤垃圾邮件,同时也支持CAPTCHA反垃圾邮件,表单域元素支持各种最常见的:单选框、复选框、文本框、下拉菜单、按钮、文件上传等多种表单域.

Contact Form 7 除了特有的联系表单扩展功能外,还有更多高级的特色功能应用,这里为大家一一说明。

Contact Form 7

1,邮件发送接收功能

当读者填写好信息点击提交后,你就可以收到一封邮件,我们在消息正文中输入如下代码,就可以显示相应信息:

读者名字:[your-name]

电子邮件:[your-email]

来信主题: [your-subject]

备注信息:[your-message]

下面是如何实现收邮件:
首先,你要保证你的博客所在虚拟主机支持mail()函数,不支持的请安装Cimy Swift SMTP插件。
在收件人中填写好收件人的邮箱,这里填我们自己的就行。
还要添加好寄件人admin@waisir.com,注意,在使用Cimy Swift SMTP插件辅助发信的朋友尖括号里面和外面都要写Cimy Swift SMTP中配置的邮箱,不然无法发信。
这样你就可以收到按你的格式的邮件了。
紧接着下面分别是邮件2
可以设置多个收件箱,比如还需要给读者发送感谢信之类的

紧接着下面分别是消息
可以自定义显示提示消息,一般不作修改,随意.
紧接着下面分别是附加设定
附加设定可以添加附加的设定,比如我们想要提交后跳转到指定页面,可以输入如下内容:
on_sent_ok: "location = 'http://wpyou.com/';"

2,什么是Cc和Bcc
CC 英文全称是 Carbon Copy(抄送);BCC英文全称是 Blind CarbonCopy(暗抄送)。 两者的区别在于在BCC栏中的收件人可以看到所有的收件人名(TO,CC,BCC),而在TO 和CC栏中的收件人看不到BBC的收件人名。
3,Contact Form 7如何添加抄送和暗送
在 邮件栏 – 另外的标头( Additional headers )下填写如下格式代码即可

Cc:test001@waisir.com

Bcc:test002@waisir.com

4,Contact Form CheckBox多选标签如何将选择框放在后面
添加label_first 这个tag即可
选框在前:
[checkbox your-cb “Option 1” “Option 2” “Option 3”]

选框在后:
[checkbox your-cb label_first “Option 1” “Option 2” “Option 3”]

5,如何CheckBox多选标签竖着排列
在主题CSS层叠样式表中添加如下代码即可
span.wpcf7-list-item { display: block; }

6,Contact Form如何调整提示信息栏的位置
当点击提交后,默认情况下在表单最下方会看到恭喜,提交成功类似文字.
我们可以随意改变提示信息的位置,使用[response]标签即可,如:
[response]

Your Name (required)

[text* your-name]

Subject

[text your-subject]

Your Message

[textarea your-message]

[response]

[submit "Send"]

7,Contact Form解决关于SEO邮件暴露问题
如,你需要一个下拉框让读者选择给谁发送邮件,不如可以选择(站长,销售员,客服),一般情况下,我们这样写就行

[select your-recipient “ceo@example.com”

“sales@example.com”

“support@example.com”]

再将自定义的[your-recipient]字段填写到收件人即可.这样就可以将邮件发送到选择的邮箱中
毋庸置疑,这样会暴露邮箱地址, 而带来垃圾邮件,而且对于用户来说也不方便.
做如下处理即可
[select your-recipient "CEO|ceo@example.com"

"Sales|sales@example.com"

"Support|support@example.com"]

相当于为每个邮件地址设置了一个用于显示的别名
8,Contact Form如何返回表单所在POST的url和文章名称/用户IP等参数
通过引用以下这些tag就可以实现了

[_remote_ip]访者IP

[_url]返回页面url

[_date]返回日期

[_time]返回时间

[_post_id]返回postID

[_post_title]返回文章名称

[_post_url]返回文章URL

[_post_author]返回文章作者

[_post_author_email]返回文章作者邮件

9,Contact Form如何让用户上传附件并发送附件
和添加其他文本域便签一样,添加一个[file]标签,如:
[file file-torrent limit:1000000 filetypes:torrent]

然后在邮件栏-附件下填写[file-torrent]即可
有多个附件时并列填写即可[file-torrent1][file-torrent2]
10,怎么将contact form 7直接插入到主题中
需要注意的是不能用短代码,用do_shortcode()函数调用:

11,Contact Form验证码CAPTCHA无法输入,这个应该在火狐下才会出现,应该的位置没放正确
这是正确的写法

[captchac your-captcha]

这是不好的写好

Enter the code: [captchar your-captcha]

Contact Form 7插件高级应用,首发于蓝月网络。

]]>