Wordpress技术
记录分享Wordpress技巧和使用经验,提供免费的技术支持和分享!
今天在给一个客户做定制的时候需要在wordpress里面新建一个数据表,参考了”我爱水煮鱼“的一篇文章,经过修改,可以使用,现在分享给大家。网上很多教程都是相互抄袭,并且没有任何参考价值。
function uctheme_taobao_collect(){
global $wpdb;
$table_name = $wpdb->prefix . 'taobao_collect';
if( $wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name ) :
$sql = "CREATE TABLE `$table_name` (
…
阅读全文 >>
什么是IndexNow
引用IndexNow官网的介绍:“IndexNow 是一种让网站所有者立即能够将其网站的最新内容更改告知搜索引擎的简单方式。在其最简单的形式中,IndexNow 是一个简单的 Ping,以使搜索引擎了解一个 URL 及其内容已被添加、更新或删除,使搜索引擎能够在其搜索结果中快速反映这一更改。”
简单点说,就是你的网站有新的文章、新的链接产生,老式的网站地图sitemap效率太低,很久都不会被搜索引擎的爬虫爬取。现在,你可以使用IndexNow主动告诉搜素引擎,我这有新的链接,快点来收…
阅读全文 >>
不得不说 WordPress 确实很强大,但是随着 WordPress 应用的广泛性和快速发展,其应用范围也越来越广,从当初的博客,到企业网站,再到现在的社交性的网站,越来越受到人们的欢迎。很多的功能方面有些时候也并不是适合与每一个站点,而 WordPress 默认情况下使用的是 Gravatar 头像,但是使用略有不便,比如我们国内需要翻墙才能注册这个头像,普通的网民或者用户可能很难操作吧!
而在近期优畅开发的新版本什么值得买主题网站间整合的时候,发现之前的禁用代码失效了,而对于在 Word…
阅读全文 >>
您是否有类似的问题,例如两个Wordpress网站如何在同一个数据库上使用不同的主题,或者如何运行两个主题不同且具有单个数据库和相同内容的WordPress博客
假设您有一个网站 “ uctheme.com ”, 并且想要为其移动用户启动一个具有相同内容的子域,即 “ m.uctheme.com”, 但是根据您的要求具有不同的主题和插件。
这是最流行的问题之一,很难在Internet上找到正确的解决方案和实现。在本文中,我将告诉您正确实施的所有步骤。
请按照以下步骤操作:
首先在您要使用与主网站相同的内容的…
阅读全文 >>
宝塔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_config['hig…
阅读全文 >>
HUIM模板:
如果主题修改过,那么主题升级前必须备份主题,养成良好习惯很重要,备份方式,使用FTP下载,下载路径一般是:wp-content\themes\uctheme_huim
升级又两种方式:
第一种:先删除uctheme_huim主题,然后再后台直接上传主题包
第二种:使用FTP上传主题包,需要解压,上传到\wp-content\themes\uctheme_huim下面即可
WYZDG模板
如果主题修改过,那么主题升级前必须备份主题,养成良好习惯很重要,备份方式,使用FTP下载,下载路径一般是:wp-content\themes\uctheme_w…
阅读全文 >>
一个常规的网站,一般都会有一个网站导航。这里的导航,通常包含网站的栏目、特殊的页面等等。对于一个博客来说,有的时候也需要一个这样的导航。如果仅仅是调用 文章分类 或者 页面链接 作为导航的话,会比较难控制,无法自由的添加链接等。当然,成熟的 WordPress 系统已经为我们考虑到了这一点,添加了一个 “自定义菜单” 功能。使用这个功能,可以在 后台 -》 外观 -》 菜单 中编辑,当然最好前提是你使用的主题支持这一个功能。
自定义菜单功能介绍
当我们在后台打开 “菜单” 的时…
阅读全文 >>
优畅主题出品的模板一般都带有自定义扩展频道,WordPress默认频道就是post,其他扩展频道的URL和默认的POST不是在一个地方设置。
点击后台左侧【设置】-【固定链接】 ,在自定义结构里面输入我们推荐的格式:
/%category%/%post_id%.html
这里设置,只能对默认的post频道起作用,那么扩展频道,比如海淘频道,快报频道,资讯频道等等这些频道的文章URL在哪里设置呢?别急,优畅告诉你地方。
【后台】-【优畅主题设置】 左侧菜单中有很多频道的tab,进去这里面
每个扩展频道…
阅读全文 >>
WordPress文章/页面编辑界面的标题输入提示文字默认为“添加标题”, 在开发优畅礼物模板的过程中,由于集成了一键采集淘宝文章的功能,这里的水印就影响了标题的写入,不太美观。优畅这样解决,加入一段小代码,去掉这个“添加标题的水印”
可以将下面的代码添加到当前主题的 functions.php 即可:
//~ 更改标题输入框提示文字
function uctheme_change_default_title($title) {
$screen = get_current_screen();
if ('post' == $screen->post_type) {
…
阅读全文 >>
在进行 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;
…
阅读全文 >>
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 );…
阅读全文 >>
我们可以用 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前台显示登录用户的注册时间》可以在前台显示用户注册时间,这里再分享一个前台显示用户最后登录时间的代码。
可以将下面的代码添加到当前主题functions.php中:
//~ 记录登录时间
function user_last_login($user_login) {
global $user_ID;
date_default_timezone_set(PRC);
$user = get_user_by( 'login', $user_login );
update…
阅读全文 >>
我们知道正常WordPress前台和后台都不会显示用户的注册时间,有时需要在前台显示登录用户的注册时间,可以用下面的代码实现。
优畅就告诉大家一个方法:
1、将代码添加到当前主题functions.php中:
function uctheme_user_registered_date(){
$userinfo=get_userdata(get_current_user_id());
$authorID= $userinfo->id;
$user = get_userdata( $authorID );
$registered = $user->user_registered;
echo '注册时间' . date( 'Y年m月d日', strtotime(…
阅读全文 >>
current_user_can()的正确用法
current_user_can()文档中有一句话要注意一下
Do not pass a role name to current_user_can(), as this is not guaranteed to work correctly.
意思是说传递用户角色名称(如author、contributor)作为参数不能100%保证返回正确的结果,正确的用法是传递$capability,从这个函数的表面意思看,参数是权限比参数是角色名称更靠谱。
所以,要根据不同角色拥有的权限来判断用户角色,用户权限可以在Roles and Capabilities中找到
判断用户是否为管理员(A…
阅读全文 >>
在为 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');
优畅主题客户们可以自己修改代码…
阅读全文 >>