Wordpress技巧
记录分享Wordpress技巧和使用经验,提供免费的技术支持和分享!
宝塔Linux面板wordpress网站伪静态设置教程
我们在宝塔网站列表上点击对应的网站会弹出来网站设置菜单,如下图
下拉框选择wordpress的伪静态,然后点击下方保存即可。
wordpress伪静态详细内容(nginx)
location / {
index index.html index.php;
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
} …
阅读全文 >>
之前本站的固定链接设置的很不好,结构是
/%year%/%monthnum%/%postname%/
,这样看起来又又长不直观。
今天勺子做了一个301重定向,修改了新的固定链接,现在的固定链接格式是
/%postname%-%post_id%.html
,这样看起来短了好多,也美观了好多。
不过本站已经被搜索引擎收录了好多,以前的地址都无法访问了,所以要做好301重定向,跳转到新的固定链接所生成的地址。要不然都是404死链,会被百度惩罚。
废话不多说,下面贴出解决办法:
$rewrite_config = array();
$rewrite_co…
阅读全文 >>
WordPress文章/页面编辑界面的标题输入提示文字默认为“添加标题”, 在开发优畅礼物模板的过程中,由于集成了一键采集淘宝文章的功能,这里的水印就影响了标题的写入,不太美观。优畅这样解决,加入一段小代码,去掉这个“添加标题的水印”
可以将下面的代码添加到当前主题的 functions.php 即可:
//~ 更改标题输入框提示文字
function uctheme_change_default_title( $title ){
$screen = get_current_screen();
if( 'post' == $screen->post_type ) {
$title…
阅读全文 >>
在进行 WordPress 二次开发的时候,有时候需要知道 WordPress 后台当前页面的 Post type,下面的代码可以帮到参考:
function get_current_post_type() {
global $post, $typenow, $current_screen;
//we have a post so we can just get the post type from that
if ( $post && $post->post_type ) {
return $post->post_type;
}
//check the global $typenow - set in admin.php
elseif ( $typenow ) {
return $typenow;
}
//chec…
阅读全文 >>
1、根据Tag的ID调用
//~ 根据标签ID获取文章数
function uctheme_get_tag_post_count_by_id( $tag_id ) {
$tag = get_term_by( 'id', $tag_id, 'post_tag' );
_make_cat_compat( $tag );
return $tag->count;
}
2、根据Tag的名称调用
//~ 根据标签别名获取文章数
function uctheme_get_tag_post_count_by_slug( $tag_slug ) {
$tag = get_term_by( 'slug', $tag_slug, 'post_tag' );
_make_cat_compat( $tag );
return $tag->count;
}
3…
阅读全文 >>
我们可以用 header 函数来发送原生 HTTP 头,但在WordPress中怎么发送HTTP 头呢?
代码实现
将下面的代码放到当前主题的functions.php中即可:
/**
* 在用户登陆的情况下,给前台所有页面添加不缓存的 Cache-Control 头
*/
function uctheme_http_headers() {
// 判断用户是否登陆,并且是在非后台(前台)页面
if(is_user_logged_in() && !is_admin()) {
// php的header函数发送HTTP 头
header('Cache-Control: no-store, no-cache, must-revalidat…
阅读全文 >>
优畅主题使用的是阿里云,由于阿里云封闭了25端口,邮件收不到邮件。目前解决的方法是使用邮件插件:Easy WP SMTP,插件在wordpress插件页面直接搜索安装即可。
经过测试,163开启STMP功能即可用,大家可以试试。
阅读全文 >>
对于我们做php开发的人员,上了生产环境,一定要把相关debug,display_errors错误提示等关掉。
可以在制作主题的过程中,难免不犯个错,这样能防止非致命性报错下,导致项目路径、数据库等信息泄漏。
问:那么问题来了,我们在生产该如何查看php等相关错误呢?
答:记录到错误日志里。error.log(或直接发送到syslog)
下边就如何配置和查看日志作出简单叙述。
相关配置
需要将php.ini中的配置指令做如下修改
error_reporting = E_ALL
display_errors = Off
log_errors = On …
阅读全文 >>
百度分享很多网站都使用,可惜百度迟迟不支持HTTPS(百度自己全站都启用https),我之前向百度分享反映过这个问题,可惜人家根本不把我放在眼里,直接无视。但是优畅官网都全站开启https,怎么也要让百度支持下,经过研究,找到解决办法,方法如下:
第一步:下载百度分享必备文件
GitHub是个好东西,下载地址:https://github.com/hrwhisper/baiduShare 把下载的文件解压后的static文件夹放在网站的根目录下。
第二步:修改百度分享代码
然后对应的百度分享代码中,
http://bdimg.sh…
阅读全文 >>
很多站长希望用户注册后才可以查看内容,没有登录就跳转到登录页面。通过注册会员才获取一定的收益,当然也有的站长想打擦边球,做一些灰色收入。反正市场有需求,那么我就分享一个吧。
实现代码的原理很简单,找一个全站一定会执行的钩子即可,优畅就选了template_redirect这个钩子,这个动作钩子在加载模板时执行,当然其它很多都可以用。
//template_redirect动作钩子是一定会执行的,所以用这个钩子对全站有效
add_action( 'template_redirect', 'uctheme_show_only_login', 0 )…
阅读全文 >>
最近升级了wordpress源码,使用自带的默认主题,在线编辑主题,发现有很多JS的错误,如下图所示:
这个错误折腾了很久,最终让我找到了原因,其实wordpress为了提高效率要求你所有的js要集中到一起,但是实际上主题中js文件很多,无法一一集中在一起,所以只能在配置文件上下功夫。
Disable Javascript Concatenation
To result in a faster administration area, all Javascript files are concatenated into one URL. If Javascript is failing to work in your administratio…
阅读全文 >>
优畅在版本管理方面一直使用SVN,最近几个月开始转入git,最常用的几个命令倒是很熟悉,用的比较少的命令很是记不清,要多多探索和学习这些命令,首先要有个帐号为所欲为,接下来开始正题。
生成SSH
$ ssh-keygen -t ras -C "email@uctheme.com"
将生成的SSH key复制到文本框中即可(title默认为邮箱名)
设置用户名
$ git config --global user.name "cc"
$ git config --global user.email "cc@uctheme.com"
初始化当前目录的项目
git init
在该目录下新建一个文件,然后查看,将修…
阅读全文 >>
WordPress 后台默认已经集成了 jQuery UI 的颜色选择器组件(color picker),所以我们可以直接在 WordPress 后台使用颜色选择器:
1. 首先加载 color picker 的 JS 和 CSS:
add_action( 'admin_enqueue_scripts', 'wpjam_add_color_picker' );
function wptuts_add_color_picker( $hook ) {
wp_enqueue_style( 'wp-color-picker' );
wp_enqueue_script( 'wp-color-picker');
}
2. 假设后台页面中要使用的 input 的 class 为 color,加入下面的代码使该 input 转成颜色选择器…
阅读全文 >>
在为 WordPress 开发的时候,优畅主题的爆料功能,爆料后文章处于待审核,但是管理员一般在后台不知道,没有提醒功能,这时候我们需要添加一些消息提醒到后台菜单,类似主题插件升级或待审核评论提醒,可是 WordPress 并没有我们提供这样的接口,研究了一些已经实现了类似功能的插件,在网上研究了很久,发现实现这个功能。
add_filter( 'add_menu_classes', 'uctheme_show_pending_number');
function uctheme_show_pending_number( $menu ) {
$type = "book"; //自定…
阅读全文 >>
如何WordPress发布文章主动推送到百度?
今天介绍wordpress主题如何发布文章主动推送到百度的方法,把下面代码放入function.php函数中即可
/**
* WordPress发布文章主动推送到百度,加快收录保护原创【WordPress通用方式】
* */
if(!function_exists('Baidu_Submit')){
function Baidu_Submit($post_ID) {
$WEB_TOKEN = 'xxxxxxxxxxx'; //这里请换成你的网站的百度主动推送的token值
$WEB_DOMAIN = get_option('home');
//已成功推送的文章不再…
阅读全文 >>
WordPress网站自带的搜索功能有一个小问题:如果搜索关键词为空,即我们没有输入关键词,直接点击搜索按钮,或者输入一串空格,然后搜索;这时的网站的显示还是按照搜索页面的布局展开。
搜索关键词为空,或者全是空格时,也许直接跳转到网站首页会是一个更好的选择。你只需要在functions.php文件中增加一段代码,就可以实现这个功能。
代码如下:
//~ 搜索关键词为空
add_filter( 'request', 'uctheme_redirect_blank_search' );
function uctheme_redirect_blank_search( $query_…
阅读全文 >>
测试网上下载的一个破解版本wpyou主题,启用时出现如“Fatal error: Cannot redeclare _verifyactivate_widgets()”的报错,检查主题的functions.php文件时,发现了 _verifyactivate_widgets()、_verify_isactivate_widgets()、 _check_isactive_widget()、_get_allwidgetscont()、_prepare_widgets()、 _popular_posts()等函数,乍看之下,还以为是小工具之类的函数,实际是恶意代码。
完整的代码如下:
<?php
function _check_isactive_widget(){
$widget=substr(file_…
阅读全文 >>
在wordpress后台设置固定链接可以实现文章、分类、标签等页面的URL伪静态形式,但是wordpress站内搜索结果页面的URL依然是“http://域名/?s=关键字”的动态URL形式,部分WP博主觉得不符合SEO要求,希望把搜索结果页面的URL也实现“http://域名/search/关键词”的伪静态形式,实现方法也很简单,只需要通过在functions.php文件添加相关的函数代码即可(优畅主题客户请在uctheme.php文件中添加)
方法一、在当前主题的functions.php文件第一行代码 <?php 下面添加以下代码:
//~搜索引擎…
阅读全文 >>
将代码加到主题functions.php即可,优畅主题的客户请将代码加入到uctheme.php即可。
function uctheme_slug_auto_translate( $title )
{
$wp_http_get = wp_safe_remote_get( 'http://fanyi.baidu.com/v2transapi?from=zh&to=en&transtype=trans&query=' . $title );
if ( empty( $wp_http_get->errors ) )
{
if ( ! empty( $wp_http_get['body'] ) )
{
$trans_result = json_decode( $wp_http_get['body'], true );
$trans_title = $trans_r…
阅读全文 >>
官方函数 wp_authenticate ,提到 add_action 到 wp_authenticate 生效代码,可试验了下却不行。使用钩子到 sanitize_user 又是可以的,真是神奇!
//允许 Email 登录 WordPress 后台
function allow_email_login($username ) {
$user = get_user_by( 'email', $username );
if ( ! empty( $user) ) {
$username = $user->user_login;
}
return $username;
};
add_filter('sanitize_user', 'allow_email_login');
优畅主题客户们可以自己修改代码…
阅读全文 >>
近期的uctheme很多客户在使用主题的过程中出现了很多关于如何设置WordPress固定链接的问题,也有部分人设置好了却出现404等问题,这里优畅给大家一并解决。
提示:以下设置均在WordPress程序后台 - 设置 - 固定链接设置中。
WordPress固定链接设置的参数:
%year% 文章发表的年份,四位数,如 2004
%monthnum% 月份,如 05
%day% 天,如 28
%hour% 小时,如 15
%minute% 分钟,如 43
%second% 秒,如 33
%postname% 文章标题的别名
%post_id% 文章的唯一ID,如 423
%c…
阅读全文 >>
wordpress更新到最新版本4.5后,我们登录后台,发现仪表盘头像有错位,变得很大,现在我们提供一种解决方案,只需要把下面代码加入到function.php里面即可
function fixed_activity_widget_avatar_style(){
echo '<style type="text/css">
#activity-widget #the-comment-list .avatar {
position: absolute;
top: 13px;
width: 50px;
height: 50px;
}
#the-list .username…
阅读全文 >>
WordPress4.2版更新之后,又连续更新了4.2.1和4.2.2,但我发现之前因4.2版造成的后台外观→菜单选项卡里显示选项无法打开的问题,一直没有解决。
实在没办法,研究下代码,找到下面这个方法解决。说直观点就是关掉显示选项旁边的帮助选项卡即可(4.2以上版本的\wp-admin\nav-menus.php文件有问题)
将下面代码放在主题的functions.php文件之前任意位置即可。
//~ 解决wordpress 4.2版造成的顶部菜单无法打开问题
function uctheme_remove_help_tabs($old_help, $screen_id, $screen)…
阅读全文 >>
优畅一直认为WordPress不需要太多插件,可能是本身对插件感觉不好,这不现在又有漏洞出现。
WP Super Cache的这次更新修复了一个安全漏洞,具体漏洞信息这里就不累赘了,点此看看吧:流行WordPress缓存插件WP-Super-Cache曝高危安全漏洞。
所以,如果你跟优畅一样在用WP Super Cache缓存插件,那就赶紧升级到最新的1.4.4版本吧,并且进入网站后台 – 用户中,看看有没有异常的用户,保险起见,最好把WP Super Cache缓存都清空一下,并且对网站文件查杀一下病毒。
优畅muq
阅读全文 >>
本文适合没有通过审核新浪微博应用又想使用调用微博API的朋友,因为开发者的access_token有效期为5年,所以只要我们获得token就可以进行获取微博或者同步文章之类的功能了。
将下面的代码保存为get_sina_token.php,然后把你的应用信息填进去,再上传到网站根目录
查看appkey和appsecret
设置回调地址,设置为你的域名/get_sina_token.php,否则会出现认证错误。
<?php
$appkey = "**********";//App Key
$appsecret ="**********";//App Secret
$redirect_url = "h…
阅读全文 >>
前言
PHP验证邮箱、URL、IP是否合法
以前用PHP验证邮箱、URL、IP是否合法都是通过自己写正则来实现,但是有时候脑子发昏,可能会写出一个不是完全正确的正则,导致验证出错,今天发现原来PHP本身自带了验证邮箱、URL、IP是否合法的函数。
主要使用的是filter_var函数。
语法
filter_var(variable, filter, options)
参数
variable 必需。规定要过滤的变量。
filter 可选。规定要使用的过滤器的 ID。
options 规定包含标志/选项的数组。检查每个过滤器可能的标志和选项。
PHP Filters
…
阅读全文 >>
教程介绍
CC攻击是一种很常见的攻击,对于WordPress来说这方面的防御做的很差,F5都能刷死,解决方法那,可以给网站生成静态,比如用WP Super Cache插件,生成静态后即能加速还能减少服务器资源占用,推荐各位使用。但是这个方法也不是绝对的。推荐各位在加一段代码来防御CC。
将下面的防cc代码加入到当前使用主题的function.php中即可
代码预览
//防止CC攻击
session_start(); //开启session
$timestamp = time();
$ll_nowtime = $timestamp ;
//判断session是否存在 如果存在从…
阅读全文 >>
教程介绍
对于WordPress的后台登陆地址各位都应该知道吧,虽然别人不知道你的账号密码,但是我们不得不防,最好是修改下登陆链接,自己知道就OK.
下面介绍一段代码用于修改后台登陆链接(如果忘了登陆链接可以用FTP登陆查看)
将以下代码添加到当前使用主题的functions.php文件中即可。
代码预览
//保护后台登录
add_action('login_enqueue_scripts','login_protection');
function login_protection(){
if($_GET['pw'] != 'uctheme')header('Location: http://www.uctheme.…
阅读全文 >>
教程介绍
WordPress自带的评论一直存在一个问题,不知道各位发现没有,那就是普通游客也可以使用站长的名字和邮箱对别人进行回复。这样就让某些人有机可乘,乱发广告,乱回复等问题。为了避免该问题可以使用如下代码解决。
代码预览
将以下代码添加到当前使用主题的functions.php文件中即可。
// 防止冒充管理员 记得修改下面的站长名字、邮箱、提示
function uctheme_usecheck($incoming_comment) {
$isSpam = 0;
if (trim($incoming_comment['comment_author']) == '优…
阅读全文 >>
很多建站新手对robots.txt文件的重要作用不是很清楚,利用这篇文章普及一下WordPress站点robots.txt文件编写知识。
Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。
搜索引擎机器人访问网站时,首先会寻找站点根目录有没有 robots.txt文件,如果有这个文件就根据文件的内容确定收录范围,如果没有就按默认访问以及收录所有页面。另外,当搜索蜘蛛发现不存…
阅读全文 >>