- 加入我的QQ群
- 关注我的百家号
扫描下面的二维码,“关注”我的百家号。
在前面的章节中,我们为wordpress模板的自带文章编辑器添加了自定义按钮和点击弹窗模块。但是呢,点击弹窗的搜索时,还不能从后端提取搜索数据。因为,还没有为wordpress主题的自定义按钮添加搜索功能。本章我们就来介绍如何给这个自定义按钮添加搜索功能。
第一步:连接wordpress数据库:
在wordpress模板的include目录下创建一个single_insert.php文件,因为这个文件不是主题模板,而是ajax提交过来的处理数据的文件,所以,它需要连接数据库。我们可以通过PHP连接数据库的方法来连接wordpress数据,如:
作为wordpress开发者,当然不喜欢再通过面原始的PHP方法来连接了。我们只需要让该文件能引入wordpress的wp-load.php文件,就可以像wordpress模板文件一样来操作wordpress的数据据了。代码如下:
@header('Content-Type: text/html; charset=UTF-8');
define('BASE_PATH',str_replace( '\\' , '/' , realpath(dirname(__FILE__).'/../../../../')));//获取根目录,根据自己的这个文件所在目录来相地应的设置
require(BASE_PATH.'/wp-load.php' );
第二步:获取ajax提交过来数据:
$input_val = esc_sql( $_POST['input_val'] );
第三步:在wordpress数据库中查询数据:
global $wpdb; //wordpress全局对象变量,想了解这个$wpdb对象,可以参阅下面的文章:
再通过这个对象的get_results这人方法来执行select查询语句:
$country_list = $wpdb->get_results('select * from wp_posts where post_type="post" and post_status="publish" and post_title like "%'.$input_val.'%"');
第四步:把获取的数据格式化:
所谓格式化,就是把数据转换成html代码来显示:
if($country_list){
foreach($country_list as $v){
$str .= '<li>'.$v->post_title; //这个标题 是在弹窗中显示
$str .= '<div class="table">'; //这个 DIV 是为了方便 JQUERY 获取 table
//注:保存文章时,表格中的 <dd>等元素 和 CSS样式 会自动消失;所以a标签直接包在文字或图片外
$str .= '<table cellspacing=10 width=100%>';
$str .= '<tr>';
$str .= '<td width=60>';
$str .= '<a href="'.get_permalink($v->ID).'">';
if (has_post_thumbnail($v->ID)) {
$default_attr = array( 'alt' => trim(strip_tags( $v->post_title )),'class' => '' );
$str .= get_the_post_thumbnail($v->ID,'large',$default_attr);
}else {
$str .= '<img src="'.catch_first_image().'" alt="'.$v->post_title.'" class="thumbnail" height=100%/>';
}
$str .= '</a>';
$str .= '</td>';
$str .= '<td width=350>';
//$str .= '<a href="'.get_permalink($v->ID).'">';
$str .= '<a href="'.get_permalink($v->ID).'">'.$v->post_title.'</a><br>';
//$str .= '</a>';
$str .= '</td>';
$str .= '</tr>';
$str .= '</table>';
$str .= '</div>';
$str .= '</li>';
}
}echo $str;
当然,我这里用的是table表格标签来实现。你也可以其它html元素来实现。这样,我们就大功告成了。效果如下图:
然后,我们就只需要再用鼠标点击上图中我们需要插入文章内容中的文章标题,就会把想要的网站其它文章标题和链接插入到正在发表的这篇文章内容中。如下图:
这样,就实现了我们预期的目标:给wordpress模板的自带编辑器添加一个自定义按钮,然后点击这个按钮,就会弹出一个搜索表单的弹窗,在这个表单的输入框中输入关键词,点击搜索按钮,就会在下面显示搜索到的文章列表,再点击这些文章列表,就可以将这些搜索到的文章链接插入到当前编辑的文章内容中,就和插入一张图片那么方便。这样的一个功能,是我的一个客户所需要的,如果你感兴趣,不妨也试试看吧。好了,到这里,关于【wordpress模板添加一个能插入文章标题链接的编辑器自定义按钮】就介绍完了,谢谢参阅哦。