如何让自己制作的html网页调用wordpress的主题

2025-01-02 11:14:02
推荐回答(2个)
回答1:

我明白你的意思。不过你这么做等于绕了一个圈子,而且太没效率。要完全从头设计一个甚至多个页面,去搭配一个不是你自己设计的主题,且不看效果,单是工作量就大得惊人,比你干脆自己从头设计一个主题还麻烦。而且wordpress目前不支持静态,只能实现伪静态,你这样做的话整个站点的完整性和兼容性都会出现很多问题,比如搜索功能你要如何调用?

你完全可以在wordpress中新建posts或者pages,然后用插件实现这个页面的html伪静态化,这类功能的插件一搜一堆。虽然我很不愿意用插件,但是这真的是最高效最稳妥的办法了。要从低层使html页面完美地融入到wordpress中难度太大了,至少我目前没有想到好办法。

回答2:

  wordpress 现在只能生成伪静态 也就是url格式改成.html结尾,在后台设置固定连接格式即可。
  如果想生成真实的html文件,需安装插件实现,cos-html-cache 是国人自己制作的,效果不错。
  WordPress 是一个 PHP + MySQL 的博客系统,其页面是动态生成的,所以需要上传的只是 PHP 语言的模板文件至主题目录。

  1、 在comments.php评论表单中添加自己想要的字段,如:





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;
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就是你在数据库中存储的字段名字
$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')