wordpress主题或插件开发过程中经常会用到页面判断函数,如判断当前页面是否是文章内容页的函数is_single()、判断是否是单页面的函数is_page(),如果是判断当前页面是文章或单页面时就要结合两个函数一起使用。而is_singular()函数则是这两个函数的升级版,通过这一个函数即可以实现前面所述的判断,并且支持附件、自定义文章类型的判断。
语法
is_singular( string|array $post_types = '' )
参数
$post_types – 字符串或数组(string|array),文章类型的一个数组,可以是page、post、attachment或custom post types,默认值为空
返回值
如果结果是要判断的页面则返回true,否则返回false
实例

判断当前页面是否是文章内容页
<?php
if(is_singular('post')){
echo '这是文章post页面';
}
?>
判断当前页面是否是文章内容页或单页面
<?php
if(is_singular(array('post','page')){
echo '这是文章内容页或单页面';
}
?>
1 如何隐藏WordPress代码内的版本号提示?
默认情况下,当你使用WordPress构建网站时,WordPress会在你的网站上留下版本号标记。
由于某些特殊原因,如果你使用旧版本的软件,暴露WordPress版本号可能会成为你网站的安全漏洞。
现在我们将告诉你如何隐藏WordPress版本号。
这是WordPress自动生成的代码,用于向外界宣布你使用的WordPress版本。
打开你的WordPress网站,右键单击空白区域并选择查看源代码,通常你会发现这样一行代码:
<meta name="generator" content="WordPress 5.8.1" />

因此,在这种情况下,你应该隐藏网站使用的WordPress版本号。
在你的WordPress网站中,有四个地方很容易公开WordPress的版本号:
假设你的网站总是使用最新版本的WordPress,你基本上不必担心由于泄露版本号而引起的安全问题。
在网络上隐藏WordPress版本号有很多技巧,还有最完面、最简洁的代码。
在模板的functions.php文件中,添加以下移除WordPress版本号的代码:
/* 在 js 文件和 css 文件中隐藏 WordPress 版本号
* @return {string} $src
* @filter script_loader_src
* @filter style_loader_src
*/
function cwl_remove_wp_version_strings( $src ) {
global $wp_version;
parse_str(parse_url($src, PHP_URL_QUERY), $query);
if ( !empty($query['ver']) && $query['ver'] === $wp_version ) {
$src = remove_query_arg('ver', $src);
}
return $src;
}
add_filter( 'script_loader_src', 'cwl_remove_wp_version_strings' );
add_filter( 'style_loader_src', 'cwl_remove_wp_version_strings' );
/* 在 generator meta 标签中隐藏 WordPress版本号 */
function cwl_remove_version() {
return '';
}
add_filter('the_generator', 'cwl_remove_version');
mv readme.html readme.bak.html
当然,上述做法隐藏了WordPress的版本号,并不能完全有效解决网站中存在的安全漏洞。
建议使用Wordfence Security安全插件扫描网站恶意代码。
希望我们网站( https://www.wordpressx.com/ ) 分享的《如何移除WordPress版本号?隐藏WordPress代码内版本号》,对您有帮助。
1 什么是Cookie-free?
当你将子域名(二级域名)作为类别目录或专题时,你可以提升URL的权重,以达到SEO搜索引擎优化的效果。
例如,网站上的所有图片,使用二级域名 img.wordpressx.com 作为图床 ▼
你可以使用二级域名作为图像路径,随时将图片从博客转移到更快的主机,只需上传图片并更改子域解析,即可解决问题。
要是你拥有中国国内的CDN服务主机,你也可以大大加快浏览速度,减轻许多服务器的负担。
由于我们网站使用WWW子域名,这种类型子域名的cookie不会污染IMG子域名,并且可以享受cookie-free,加快访问速度。
YSlow就如何提高网页效率和优化网站性能提供了22条建议。
如果你直接使用如 wordpressx.com 这样的顶级域名作为你的博客域名,那么使用子域名作为图床不能实现Cookie-free。
wordpressx.com 会向所有被请求的静态文件的二级域名服务器发送cookie。如果你想支持Cookie-free的图床,则需要使用不同的域名来实现Cookie-free。
www.wordpressx.com 的子域名没有问题。在 wp-config.php文件中,添加以下语句 ▼
/** 指定cookies域 */
define('COOKIE_DOMAIN', 'www.wordpressx.com');
以下是Wordpress 官方 对 Set Cookie Domain 的说明:
为Wordpress设置的COOKIES Domain 可以进行一些特殊情况下的域名设置。比如使用二级域名存放静态内容。为了阻止Wordpress Cookies 在对每一个二级域名上的静态内容请求时被传送,我们可以只设置非静态域名为cookie domian。
The domain set in the cookies for WordPress can be specified for those with unusual domain setups. One reason is if subdomains are used to serve static content. To prevent WordPress cookies from being sent with each request to static content on your subdomain you can set the cookie domain to your non-static domain only.
第 1 步:进入DNSPod域名管理,添加二级域名(子域名) ▼
DNSPod怎么解析子域名?腾讯云DNSPod智能解析二级域名教程
DNSPod怎么解析子域名?腾讯云DNSPod智能解析二级域名教程腾讯云DNSPod智能DNS解析,只需设置相同的域名记录,指向网通和电信IP。当网通用户访问时,智能DNS将自动确定访客的到达……
第 2 步:将子域名的A记录,解析到主机的IP地址 ▼
![]()
第 3 步:在主机面板上添加二级域名
VestaCP面板添加域名,可以参考这篇教程 ▼
VestaCP面板怎么用?安装邮局/添加多域名&文件管理
VestaCP是一个非常简单,但功能强大且高效的Linux网络主机控制面板。默认情况下,它将安装nginx Web服务器,PHP,Mysql,DNS服务器和其他必须运行完整的Web服务器的软件,这些都是建站做SEO……
在子域名绑定之后,通常会自动创建一个包含此子域名为目录名称的目录。
例如:
wp-content/uploads 目录中的文件,复制到IMG目录里。下面是以VestaCP面板的服务器路径为例(请修改成自己的服务器路径)。
第 1 步:SSH 进入WordPress 的 uploads 文件夹目录 ▼
cd /home/用户名/web/你的域名/public_html/wp-content/uploads
第 2 步:复制当前目录下的所有文件,到指定目录 ▼
cp -rpf -f * /home/用户名/web/图片二级域名/public_html/
第 3 步:修复图片二级域名权限 ▼
chown -R admin:admin /home/用户名/web/图片二级域名/public_html/*
WordPress版本3.5或更高版本,在后台隐藏了媒体(Media)设置页面的上传路径(upload_path)和文件 URL 地址(upload_url_path)设置。
下图是先前版本的媒体设置界面 ▼
如果你仍然需要自定义,则可以尝试以下方法恢复。
直接将以下代码添加到WP主题的 functions.php文件中,即可恢复设置界面:
//找回上传设置
if(get_option('upload_path')=='wp-content/uploads' || get_option('upload_path')==null) {
update_option('upload_path',WP_CONTENT_DIR.'/uploads');
}
}
由于img目录仍在当前主机上,因此在编写博客文章时,仍然可以使用WordPress自带的编辑器,上传和添加图像。
第 1 步:进入媒体选项
点击 “设置” 下的 “媒体” ▼
第 2 步:将 “默认上传路径”,更改为IMG目录的服务器路径 ▼
/home/用户名/web/img.wordpressx.com/public_html
第 3 步:将 “文件的完整URL”,更改为图片二级域名 ▼
https://img.wordpressx.com
第 4 步:点击“保存更改”。
下面是以VestaCP面板的服务器路径为例(请修改成自己的服务器路径)。
替换MySQL数据库中的路径,推荐安装使用 WP Migrate DB 插件 ▼
WordPress网站搬家插件:WP Migrate DB设置方法(数据库迁移利器)
WordPress网站搬家插件:WP Migrate DB设置方法(网站数据库迁移利器)有插坐插坐学院的同学,用WordPress搭建网站做公众号推广,但是网站空间不稳定,影响到SEO排名,索性将网站迁移到……
第 1 步:数据库批量替换 默认上传路径
将本来的服务器路径 ▼
/home/用户名/web/wordpressx.com/public_html/wp-content/uploads
替换为新的服务器路径 ▼
/home/用户名/web/img.wordpressx.com/public_html
第 2 步:数据库批量替换 图片二级域名
将本来的图片URL ▼
https://www. 你的域名 .com /wp-content/uploads/
替换为新的图片二级域名 ▼
https://img. 你的域名 .com/
在.htaccess文件用正则表达式301重定向说明:
可以用RedirectMatch实现链接重定向:
https://www. 你的域名 .com/wp-content/uploads/https://img. 你的域名 .com/在 .htaccess文件中,添加以下301重定向代码 ▼
RedirectMatch 301 ^/wp-content/uploads/(.*)$ https://img.wordpressx.com/$1
第 1 步:SSH进入WordPress 的 uploads 文件夹目录 ▼
cd /home/用户名/web/你的域名/public_html/wp-content/
第 2 步:删除 uploads 文件夹目录 ▼
rm -rf uploads
倘若一切如常,你也就完成了WordPress图片加载二级域名的设置了。
当你需要网站搬家转移图片时,只需将IMG目录打包后上传到新主机。
希望我们网站( https://www.wordpressx.com/ ) 分享的《WordPress图片二级域名有什么用?如何改成图片子域名》,对您有帮助。
get_post_format()函数用于获取文章的形式,在为不同形式的文章制作不同的模板时非常有用。
语法
get_post_format( int $post = null )
参数
$post_id 整数型,默认值:null 文章的ID
返回值
实例

get_template_part('content', get_post_format());
get_template_part():根据get_post_format()返回的信息来加载content开头命名的相应的模板;
get_post_format():获取当前post的形式。
讲解
比如我们现在有一个模板 content-image.php
那么可以通过get_template_part(‘content’, get_post_format())调用,即如果当前post形式是image,也就是对应上面的返回值,那么就会调用模板content-image.php;如果返回的post分类模板不存在,那么就会使用默认post模板。
1 翻译问题
如何解决WordPress出现Warning: session_start(): Cannot send session cache limiter?
我们在本地电脑测试WP主题时,竟出现了这样的PHP警告提示:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at D:xampphtdocswpceshimubanwp-contentpluginswordpress-seofrontendclass-json-ld.php:121) in D:xampphtdocswpceshimubanwp-contentpluginsad-inserterclass.php(360) : eval()'d code on line 14
警告:session_start():无法发送会话缓存限制器 - 已发送的头文件(输出开始于D: xampp htdocs wp ceshimuban wp-content plugins wordpress-seo frontend class-json-ld.php: (360):eval()在第14行的d代码(第121行)在D: xampp htdocs wp ceshimuban wp-content plugins ad-inserter class.php
有人表示,因为在session_start(); 语句之前,有其它 html代码存在,但是
不过有些人说他的 session_start(); 之前已经做了。
还有的人说,是没有好设置 session 的保存路径,需修改 php.ini 文件中的:session.save_path = "C:/phpsession"
(后边的路径自己设置,并且要确定存在)
Linux命令查询PHP配置文件 php.ini 文件的存放位置。
shell下执行:

php -v / -name php.ini
或者
find / -name php.ini
以下是我们测试后,最终的解决办法。
session.auto_start = 0 为 session.auto_start = 1希望我们网站( https://www.wordpressx.com/ ) 分享的《WordPress出现Warning: session_start(): Cannot send session cache limiter如何解决?》,对您有帮助。