
插件介绍:
插件名:User Submitted Posts
插件特色:
游客提交的信息可包括标题,标签,分类,作者,网址,内容及图像(多张);
支持在模板中使用模板标签或者该插件的简码来显示提交表单;
支持图片上传,可设置图片的数量、大小以及指定图片的最小和最大尺寸,此外还支持批量上传;
支持一键过滤用户提交的搞件;
支持定制提交表单的名称、IP、网站以上传图片的路径;
插件安装:
下载安装插件后,在已安装插件列表中启用该投稿插件;
在后台设置选项卡下的User Submitted Posts选项进入插件的设置界面对插件进行设置;
通过在日志或者主题页面中使用模板标签、php代码引用来显示稿件提交表单
要在日志中显示稿件提交表单,插入简码:
1
[user-submitted-posts]
要在主题文件中显示稿件提交表单的方法:
1
<?php public_submission_form(true)?>
User Submitted Posts 插件提供了一些模板标记以增强该插件的灵活性
显示提交稿件中的图片附件,使用如下方式:
1
<?php post_attachments()?>
该函数可打印出指定的稿件的图片的详细信息,参数说明如下:
1
<?php post_attachments($size, $beforeUrl, $afterUrl, $numberImages, $postI)?>
$size 设置默认大小,可选参数为 thumbnail, medium, large or full 默认值为 full
$beforeUrl 设置image标签前的文本或者html标记,默认值为” <img src=”
$afterUrl 设置image标签后的文本或者html标记,默认值为” />
$numberImages 设置每篇稿件的图片显示数量,默认值为 false(Belary注: 即全部显示
$postId设置可选的稿件的ID, 默认为使用全局的日志
有三种方法:1、后台搜索要安装的插件,搜索出来后直接安装。2、先将要安装的插件下载到电脑上,点击后台的安装,这样也可以实现插件安装。
3、和第二种方法有点类似,就是将下载下来的插件直接用ftp上传到插件的目录,在到网站后台刷新,这样也可以。
1、 在comments.php评论表单中添加自己想要的字段,如:<p>
<input type="text" name="tel" id="tel" size="22" tabindex="4" />
<label for="tel">电话</label>
</p>
tabindex 这个属性按照从小到大排,为什么要这样?你可以自己试试….
2、如果评论表单是使用系统自带的,那么请用以下方法添加表单字段,如果不是,请略过
add_filter('comment_form_default_fields','comment_form_add_ewai')
function comment_form_add_ewai($fields) {
$label1 = __( '国家/地区' )
$label2 = __( 'Skype账号' )
$label3 = __( '电话' )
$label4 = __( '传真' )
$label5 = __( '地址' )
$value1 = isset($_POST['guojia']) ? $_POST['guojia'] : false
$value2 = isset($_POST['skype']) ? $_POST['skype'] : false
$value3 = isset($_POST['tel']) ? $_POST['tel'] : false
$value4 = isset($_POST['fax']) ? $_POST['fax'] : false
$value5 = isset($_POST['address']) ? $_POST['address'] : false
$fields['guojia'] =<<<HTML
<p>
<label for="guojia">{$label1}</label>
<input id="guojia" name="guojia" type="text" value="{$value1}" size="30" />
</p>
HTML
return $fields
}
3、 接收表单字段并写入数据库
在主题目录的 functions.php添加以下代码
add_action('wp_insert_comment','wp_insert_tel',10,2)
function wp_insert_tel($comment_ID,$commmentdata) {
$tel = isset($_POST['tel']) ? $_POST['tel'] : false
//_tel 是存储在数据库里的字段名字,取出数据的就会用到
update_comment_meta($comment_ID,'_tel',$tel)
}
这两步就可以将数据写入数据库了,不信你试试看
add_action()参数中的10和2分别表示该函数执行的优先级是10(默认值,值越小优先级越高),该函数接受2个参数。
4、在后台显示额外字段
前面两步只是接收和写入到数据库,那么要怎么在后台评论列表中显示呢?将以下代码复制到主题目录的functions.php 中:
add_filter( 'manage_edit-comments_columns', 'my_comments_columns' )
add_action( 'manage_comments_custom_column', 'output_my_comments_columns', 10, 2 )
function my_comments_columns( $columns ){
$columns[ '_tel' ] = __( '电话' ) //电话是代表列的名字
return $columns
}
function output_my_comments_columns( $column_name, $comment_id ){
switch( $column_name ) {
case "_tel" :
echo get_comment_meta( $comment_id, '_tel', true )
break
}
如果要在前台的留言列表中调用,就用以下代码,_tel就是你在数据库中存储的字段名字
<?php
$tel = get_comment_meta($comment->comment_ID,'_tel',true)
if( !empty($tel)){
echo "电话".$tel
}
?>
5、 大功告成,看看后台的评论列表,是不是多了一列电话,那样的话就没错了。
6、如果要移除某一个自带的表单字段,可以使用以下代码
function tel_filtered($fields){
if(isset($fields['tel']))
unset($fields['tel'])
return $fields
}
add_filter('comment_form_default_fields', 'tel')
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)