支持执行PHP代码的文本域小工具

两种可以系边栏文本域小工具执行PHP代码的方案。
 

打算将GOOGLE的QR码API直接引用系边栏果度,求其啉咗下有三种方案:
1,直接系主题的边栏文件度加,呢个是最简单的,不过静系可以放系最头或者最尾。
2,系现有的文本域边栏度加,不过要加执行PHP代码,同样是简单,不过性能肯定上差咗D。
3,增加一个新的边栏小工具,叫“可执行PHP代码的文本域”,呢种方式自定义性最高,不过无论性能同代码上都唔系最好的。

首先来睇下要用的代码,就唔解释了,用第一种方案的话没咩要讲的。

<img src="http://chart.googleapis.com/chart?cht=qr&amp;chs=200x200&amp;choe=UTF-8&amp;chld=L|4&amp;chl=<?php
if(is_singular()) {
	the_permalink();
} else {
	echo get_bloginfo('url').$_SERVER['REQUEST_URI'];
}
?>" alt="当前页面的QR二维码" />

第二种方案

function PHP_Widget_Text($text)
{
	if (false !== strpos($text, '<?'))
	{
		ob_start();
		eval('?>' . $text);
		$text = ob_get_clean();
	}
	return $text;
}
add_filter('widget_text', 'PHP_Widget_Text');

将以上复制到”functions.php“里边就可以收工了。
如果你想系文章里边执行PHP代码的话,“the_content”、“the_excerpt”,自己加了。

第三种方案

先将”wp-includes\default-widgets.php“的“WP_Widget_Text”重载类直接复制到主题的”functions.php“里边。
再小修改下开头两个函数。

class PHPWidgetText extends WP_Widget {

	function __construct() {
		$widget_ops = array('classname' => 'bd_phptext_widget_text', 'description' => '我自己的 Blue Dream 主题支持执行PHP的文本框小工具' );
		$control_ops = array('width' => 400, 'height' => 350);
		parent::__construct('bd_phptext_widget', 'PHP文本框', $widget_ops, $control_ops);
	}

	function widget( $args, $instance ) {
		extract($args);
		$title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
		$text = empty( $instance['text'] ) ? '' : $instance['text'] ;
		ob_start();
		eval('?>' . $text);
		$text = ob_get_clean();
		echo $before_widget;
		if ( !empty( $title ) ) { echo $before_title . $title . $after_title; } ?>
			<div><?php echo !empty( $instance['filter'] ) ? wpautop( $text ) : $text; ?></div>
		<?php
		echo $after_widget;
	}

...
...
}

最后记得系你主题的“widgets_init”里边加句

register_widget( 'PHPWidgetText' );

《支持执行PHP代码的文本域小工具》有0个评分

★★★★★
★★★★
★★★
★★
0
0
0
0
0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注