标签归档:wordpress

wordpress的$wpdb函数

wordpress编写插件的时候,发现需要调用数据库 wpdb 不管在前台模板,还是在后台的插件,都可以自由的使用 使用wordpress的时候,如果想直接使用WP里封装的数据库操作的类(wp-db.php),将wp-blog-header.php包含到代码中就可以使用了。 Php代码 收藏代码 define(‘PATH’, dirname(dirname(__FILE__)).‘/’); require_once(PATH . ‘../wp-blog-header.php’); global $wpdb; 插入数据时,其中一种方法是使用wp-db类中的insert()函数。 Php代码 收藏代码 $table = "test_table"; $data_array = array( ‘column_1′ => ‘data1′, ‘column_2′ => ‘data2′ ); $wpdb->insert($table,$data_array); 第一个参数是数据库表中的名字,第二个参数是要插入的数据,是一个数组。数组中的key的名字就是表中的列名。其实insert()函数还有第三个参数format,感兴趣的朋友可以在wp-db.php的方法定义里看看更新数据时,可以用update()函数,例如: Php代码 收藏代码 $table = "test_table"; $data_array = array( ‘column_1′ … 继续阅读

发表在 PHP | 标签为 , | 留下评论

为wordpress编写一个插件

用一个基础的插件来理解wordpress的插件编写 这个插件仅仅将wp_options表中 option_name为 yuexiaosheng_test1_from的那条纪录的值 插件在后台有菜单,有窗口,有数据库交互,仔细理解能看见一个比较完整的插件体系了。 <?php /* Plugin Name: 下载插件 Plugin URI: http://java-er.com Description: 这仅仅是一个测试 Version: The Plugin’s Version Number, e.g.: 1.0 Author: 月小升 Author URI: http://java-er.com License: A "Slug" license name e.g. GPL2 */   $pluginName = ‘月小升测试插件2′; //插件名称 … 继续阅读

发表在 PHP | 标签为 , , | 一条评论

WordPress nginx 配置

WordPress是一个非常流行的Blog系统,它可以利用Apache的mod_rewrite来实现URL的静态化。安装好的WordPress在配置了持久链接之后,会在网站的根目录下(如果可写)生成一个.htaccess文件,这个文件可以指示Apache如何进行URL重写(如果服务器配置为允许使用htaccess的指令的话),它的内容如下: # BEGIN WordPress   RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]   # END WordPress 这个文件的意思就是,如果当请求的文件不存在,那么把请求内部重定向到/index.php。WordPress会自己分析请求的URL,来判断显示哪个页面。 在上次配置了Nginx+PHP之后,由于Nginx不支持Apache的.htaccess文件,要实现持久连接静态化,我们必须手工配置Nginx的文件。首先找到Nginx的配置文件,默认编译后的配置文件在/usr/local/nginx/conf/nginx.conf;Ubuntu通过包安装的配置文件位于/etc/nginx/nginx.conf,也可以编辑vhost的配置文件,放在了/etc/nginx/sites-available下。 以下是基本的配置(Ubuntu下的范例): location / { index index.html index.php; if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } … 继续阅读

发表在 Linux, PHP | 标签为 , | 4 条评论

WordPress 后台只有菜单,左侧空白

有时候在WordPress系统迁移后,或者在动了apache或php后,发现后台菜单都在,但是点击时,右侧窗体却不加载,内容为空白。而插件菜单都可以点击并且正常。惨状就像下面这张图这样: wordpress后台不加载 或许,你还能发现以下的报错信息: Fatal error: Access to undeclared static property: WP_Screen::$this in blog/wp-admin/includes/screen.php on line 706 而你很真的真的很确定自己没有动过WordPress的任何配置啊!这时要怎样修复呢?别当心,stackoverflow上有人遇到同样的问题。只要找到以下文件 /wp-admin/includes/screen.php 用你最喜欢的文本编辑器打开它,然后将 <?php echo self::$this->_help_sidebar; ?> (注意空格个数可能略有不同) 替换为 <?php echo $this->_help_sidebar; ?> 保存之后,看看是不是OK了?

发表在 PHP | 标签为 | 8 条评论

wordpress文章列表显示缩略图

看不到不少博客都在列表里显示了缩略图,觉得很好看 在列表的代码里加函数 function getFirstImage($postId) { $args = array( ‘numberposts’ => 1, ‘order’=> ‘ASC’, ‘post_mime_type’ => ‘image’, ‘post_parent’ => $postId, ‘post_status’ => null, ‘post_type’ => ‘attachment’ ); $attachments = get_children($args);   // 如果没有上传图片, 返回空字符串 if(!$attachments) { return ”; }   // … 继续阅读

发表在 PHP | 标签为 , , | 留下评论

wordpress IIS下httpd.ini的urlrewrite设置

标准的httpd.ini [ISAPI_Rewrite] RewriteRule /test.html /test.asp RewriteRule /blog/sitemap.xml /blog/sitemap.xml [L] RewriteRule /blog/wap(.*) /blog/wap$1 [L] RewriteRule /blog/content/uploads/(.*) /blog/content/uploads/$1 [L] RewriteRule /blog/wp-(.*) /blog/wp-$1 [L] RewriteRule ^/$ /index.php [L] RewriteRule /blog/(.*/) /blog/index.php/$1 [L] 当然我是在blog目录下,如果你是根目录 删除blog/ 就好了。 主要是如果连接中含有中文的话,就会转向到404页面,是通过httpd.ini解决不了的,我们必须来修改源代码。 修改网站目录下wp-include/classes.php文件(请先行备份): (最新3.1版需要修改的文件是wp-include/class-wp.php) 第一步:找到 $pathinfo = $_SERVER['PATH_INFO']; 修改为 … 继续阅读

发表在 PHP | 标签为 , , | 留下评论

trackback垃圾评论发送和禁止发送

自从评论加了验证码以后,trackback被很多人充分的利用来发送垃圾外链。 (SEO学科中,垃圾外链花费的力气和回报其实不成正比,这些人不会算账) trackback我们可以在 wordpress的后台来关闭。但是关闭以后,之前发布的文章依旧没有关闭这个功能,所以可能继续会收到别人的垃圾引用。 先看一下他们是如何发送trackback 的。 后台日志显示为调用一个地址如/abc/trackback/ 向这里POST一个请求。 wordpress系统包含了如何给对方发送一个trackback,具体代码不研究了。看一眼发送文章的时候如何给别人发送一个trackback. 每条日志都在发送的时候,有一个字段来控制是否本篇日志接受trackback.这很好的解释了为什么后台关闭trackback功能以后,仅仅对后面的文章起作用。 那么如何让之前的文章也关闭trackback就使问题迎刃而解了。 跑到数据库里执行如下语句。 UPDATE wp_posts SET ‘ping_status’ = ‘closed’; 良好的沟通协议,被垃圾外链搞的乱七八糟,只好关闭了。

发表在 Linux, PHP | 标签为 , , | 留下评论

彻底关闭wordpress的Pingback功能

尽管我已经对博客加了评论验证,关闭了traceback和pingback,依然无法抵挡一些人,对以前发布的博客进行pingback,导致了大量的垃圾评论。 以下小代码,过滤pingback function no_self_ping( $links ) {   $home = get_option(’home’);   foreach ( $links as $l => $link ){   if ( 0 == strpos($link,$home) ){   unset($links[$l]); } }   }   add_action ( ‘pre_ping’, ‘no_self_ping’ ); 添加到Themes/模板目录/funtions.php里。

发表在 PHP | 标签为 , | 3 条评论

WordPress文章置顶功能无插件

看到不少朋友问wordpress置顶,后来发现wordpress有自带置顶功能 WordPress文章置顶功能只是比较隐蔽,方法如下: 1、写好文章并发布。 2、点击博客后台文章菜单下的“编辑”选项,进入文章列表。 3、把鼠标移到需要置顶的文章上,点击“快速编辑”选项。 4、在快速编辑下“保持这篇文章置顶”前面的小框打勾,然后点击更新文章。 5、更新文章后,打开博客首页就会发现文章的置顶状态了。 还有一个地方是在公开度那里(直接可以置顶) Tips:除了使用这个方法,也可以使用WordPree的一些文章置顶插件,文章置顶插件有支持7天置顶,月置顶的功能。 个人目前认为没什么必要,需要的朋友可以去下载插件。 一图胜过千言万语。 上图

发表在 PHP, 互联网观察 | 标签为 , | 留下评论

开发wordpress 插件的后台管理面板

月小升力求采用简单的流程来表达如何在后台增加控制选项。 开发wordpress 插件后台管理面板 wordpress的插件功能非常强大,之前说过一篇关于如何开发一个简单的插件。后来发现插件有很多时候需要用户在后台输入一些参数的。 本篇文章讲述如何在后台搞出来一个页面,让用户输入一个参数,来实现wordpress后台控制选项。 <?php /* Plugin Name: 月小升测试插件 Plugin URI: http://java-er.com Description: 这仅仅是一个测试 Version: The Plugin’s Version Number, e.g.: 1.0 Author: 月小升 Author URI: http://java-er.com License: A "Slug" license name e.g. GPL2 */   $pluginName = ‘月小升测试插件’; //插件名称 … 继续阅读

发表在 PHP | 标签为 , | 一条评论