灌溉梦想,记录脚步
标签类目:wordpress

WordPress代码高亮插件兼容问题

WordPress升级到6.4,PHP升级到8.2版本后,WP-SYNTAX插件提示如下错误,并导致页面无法访问。

错误信息:

( ! ) Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in \wp-content\plugins\wp-syntax\wp-syntax.php on line 380

解决方案:

1、将wp-syntax.php第241行删除“&”符号,删除后代码如下:

public static function substituteToken( $match ) {

2、更新geshi包

从下面地址下载包,并替换:/geshi-1.0-master/src/ -> /wp-content/plugins/wp-syntax/geshi/

https://github.com/GeSHi/geshi-1.0

WordPress 3.3禁用自动保存

刚刚更新到wordpress 3.3,为了文章ID能够连续,找到这个方法:
修改主题中的functions.php,添加下面代码

/* 移除自动保存和修订版本 */
remove_action('pre_post_update', 'wp_save_post_revision' );
add_action( 'wp_print_scripts', 'disable_autosave' );
function disable_autosave() {
wp_deregister_script('autosave');
}

Wp-syntax支持的语言

wp-syntax支持以下语言:

abap, actionscript, actionscript3, ada, apache, applescript, apt_sources, asm, asp, autoit, avisynth, bash, bf, bibtex, blitzbasic, bnf, boo, c, c_mac, caddcl, cadlisp, cil, cfdg, cfm, cmake, cobol, cpp-qt, cpp, csharp, css, d, dcs, delphi, diff, div, dos, dot, eiffel, email, erlang, fo, fortran, freebasic, genero, gettext, glsl, gml, bnuplot, groovy, haskell, hq9plus, html4strict, idl, ini, inno, intercal, io, java, java5, javascript, kixtart, klonec, klonecpp, latex, lisp, locobasic, lolcode lotusformulas, lotusscript, lscript, lsl2, lua, m68k, make, matlab, mirc, modula3, mpasm, mxml, mysql, nsis, oberon2, objc, ocaml-brief, ocaml, oobas, oracle11, oracle8, pascal, per, pic16, pixelbender, perl, php-brief, php, plsql, povray, powershell, progress, prolog, properties, providex, python, qbasic, rails, rebol, reg, robots, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, tcl, teraterm, text, thinbasic, tsql, typoscript, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xml, xorg_conf, xpp, z80

使用格式:<pre lang=”java” line=”1″> code </pre>

WordPress 3.1 禁止自动草稿(auto-draft)的方法

备注:转自网络,并验证可用。
WordPress3.1版本发布有一段时间了。该版本不仅仅有自动保存历史版本的功能(通常都用不着,还会造成一些垃圾数据),还增加了一个自动保存草稿的功能。你每次点击”add new”时都会在post表中保存一条状态为“auto-draft”的后台不可见记录,同样会造成一些垃圾数据以及ID的不连续性。

为保证尽量减少数据库中的垃圾和保持日志ID的连续性,人们想了很多办法,各显神通。但大部分都是采用插件形式。插件形式仅仅能禁止日志的历史版本,却对自动插入的状态为”auto-draft”的记录无能为力。而且这种记录并不能在wordpress的后台看到。对于追求完美和有洁癖的人来说,这些记录实在是很烦人。

禁止自动生成 auto-draft 的不可见草稿:
在wp-admin/includes/post.php中,从第374行开始,有一个if判断,代码如下:

1
2
3
4
5
6
7
8
if ( $create_in_db ) {
// Cleanup old auto-drafts more than 7 days old
$old_posts = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_status = 'auto-draft' AND DATE_SUB( NOW(), INTERVAL 7 DAY ) > post_date" );
foreach ( (array) $old_posts as $delete )
wp_delete_post( $delete, true ); // Force delete
$post_id = wp_insert_post( array( 'post_title' => __( 'Auto Draft' ), 'post_type' => $post_type, 'post_status' => 'auto-draft' ) );
$post = get_post( $post_id );
} else {

继续阅读 »

wp-syntax兼容性问题

在wordpress升级至3.0.5后,同时也升级了wp-syntax,结果所有使用格式的文章均出现宽度不当问题,
在文章底部出现了左右的状态条,感觉是wp-syntax造成的,经测试,可以通过修改css文集解决。

方法:
编辑wp-syntax/wp-syntax.css文件
修改width原来的100% 为 99%

/* IE FIX */
.wp_syntax {
overflow-x: auto;
overflow-y: hidden;
padding-bottom: expression(this.scrollWidth > this.offsetWidth ? 15 : 0);
width: 99%;
}

WordPress 升级至3.0.3以及日志ID连续设置

WordPress由3.0.1 升级至3.0.3,升级后日志ID默认任然会不连续。设置方法如下:

1,下载插件,并启用,插件为disable-autosave;
2,添加下面内容到wp-config.php

define(‘WP_POST_REVISIONS’, false);
define(‘AUTOSAVE_INTERVAL’, false);

3,编辑wp-admin/includes/post.php文件,在语句if ( $create_in_db ) {之前加入下行代码:
$create_in_db = false;

以上配置经过测试。

wordpress 3.01 解决id不连续问题

解决WorPress 3.0.1自动草稿的方法是:依旧启用原先的disable revisions and autosave插件,然后编辑wp-admin/includes/post.php文件,在if ( $create_in_db ) {语句之前加入一行$create_in_db = false; 语句,经过实际测试,增加了这一行之后,新建日志,数据库就不会出现一篇自动存档的草稿了。

转载自月光博客。