建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

wordpress添加自定义分类函数:register_taxonomy()(WordPress添加前台注册功能的方法介绍)

GG网络技术分享 2025-03-18 16:14 39


wordpress添加自定义分类函数:register_taxonomy()

创建一个自定义分类法需要使用 register_taxonomy() 函数,这个函数接收 3 个参数。

语法

$post_type用来指定对应的post_type分类,就是register_post_type注册的分类

参数

$taxonomy:分类法的名称。这个名称不应包含中文,因为它不是给用户看的,而是类似于 ID 的作用

$post_type:分类法用于哪些文章类型。WordPress 的文章(post)默认已经有了两个分类法(分类和标签),你可以把这个分类法用于自带的文章类型(post、page、attachment、revision 和 nav_menu_item)和自定义文章类型,有三种填法:
只用于一个文章类型,列如:$post_type = ‘post’
用于多个文章类型,例如:$post_type = array(‘post’, ‘page’)
不应用给任何文章类型,例如:$post_type = null

$arg:参考下面的详细解释

例子

先上例子,跟着例子看参数比较容易理解

$args详细参数

label:分类法显示给用户的名字,可用使用中文和其它字符

labels:显示给用户的名词。这个数组用来设置显示给用户的关键文字,如果不填 WordPress 会自动给你设置好(参考下面的labels参数)

public:是否公开,如果公开会生成前台存档页面

show_ui:是否在后台的侧边管理菜单显示

show_in_nav_menus:是否在菜单页面里添加一个条款

show_tagcloud:分类法是否显示标签云的部件

meta_box_cb:显示在文章编辑器的分类法选择板块是什么形式

show_admin_column:是否显示在后台文章列表的数据列上

hierarchical:显示在文章编辑器的分类法选择板块是什么形式。设置成 True 则为分类形式(多选框),False 则为标签形式(文本框和添加按钮)【注意:分类法的管理界面像 “分类” 还是 “标签” 取决于你的 hierarchical 参数】

update_count_callback:分类法发生变化时的回调函数

query_var:查询存档页面的关键字,默认是分类法名(ID)。最好保持默认

rewrite:伪静态规则。设置成 False 将禁用伪静态;还可以设置一些元素,比如 “slug”

capabilities:分类法权限设置。最好保持默认

sort:查询分类法文章时的排序

_builtin:这是内置的分类法还是自定义分类法。最好保持默认或设置成 False。这个参数只有 WordPress 核心才有用

labels详细参数

name’ – 分类的通用名称,通常为复数

‘singular_name’ – 此分类法的一个对象的名称

‘search_items’ – 搜索项目文字。默认为__(’搜索标签’)或__(’搜索类别’)

‘popular_items’ – 热门项目文字。默认为__(’热门标签’)或null

‘all_items’ – 所有项目文本。默认为__(’所有标签’)或__(’所有类别’)

‘parent_item’ – 父项文本。此字符串不用于非分层分类法,例如帖子标记。默认值为null或__(’父类别’)

‘parent_item_colon’ – 与结果相同parent_item,但:结尾为冒号,__(’父类别:’)

‘edit_item’ – 编辑项目文本。默认为__(’编辑标签’)或__(’编辑类别’)

‘update_item’ – 更新项目文本。默认为__(’更新标签’)或__(’更新类别’)

‘add_new_item’ – 添加新项目文本。默认为__(’添加新标签’)或__(’添加新类别’)

‘new_item_name’ – 新项目名称文本。默认为__(’新标签名称’)或__(’新类别名称’)

‘separate_items_with_commas’ – 分类项元框中使用逗号文本的单独项目。此字符串不用于分层分类法。默认值为__(’带逗号的单独标签’)或null

‘add_or_remove_items’ – 添加或删除项目文本,并在禁用JavaScript时在元框中使用。此字符串不用于分层分类法。默认值为__(’添加或删除标记’)或null

‘choose_from_most_used’ – 从分类法元框中使用的最常用文本中进行选择。此字符串不用于分层分类法。默认值为__(’从最常用的标签中选择’)或null

‘menu_name’ – 菜单名称文字。此字符串是提供菜单项的名称。默认为name的值

前台调用

自定义分类法的分类列表页面模板文件是taxonomy.php或taxonomy-{taxonomy_slug}.php,taxonomy.php是所有自定义分类法默认调用的模板文件,taxonomy-{taxonomy_slug}.php则是指定自定义分类法调用的模板文件,比如本教程中创建的自定义分类法products,使用taxonomy-products.php文件即可指定调用。

特别注意

强调一点,添加过新的自定义分类之后一定要更新下固定连接,只需要点击保存设置就行,不然前台是调用不出来的。

接下来如何创建分类法页面可以参考:wordpress创建你的第一个分类法页面。

WordPress添加前台注册功能的方法介绍

本文实例讲述了WordPress添加前台注册功能的方法。分享给大家供大家参考。具体分析如下:

WordPress属于个人博客型的开源系统,是不是具备前台注册功能的,下面我来介绍自己给WordPress增加一个会员注册功能,有需要的朋友可参考.

一、添加注册表单

1、首先在当前主题的目录下新建一个php文件,命名为reg-page.php,然后将page.php中的所有代码复制到reg-page.php中;

2、删除reg-page.php开头的所有注释,即 /* 与 */,以及它们之间的所有内容;

3、搜索:the_content,可以查找到类似代码<?php the_content(); ?>,将其替换成代码一(注意使用UTF-8编码保存)

如果你在reg-page.php中找不到the_content,那么你可以查找:get_template_part,可找到类似代码:<?php get_template_part( \'content\', \'page\' ); ?>,将content-page.php中的所有代码替换这部分代码即可。再用下面的代码替换<?php the_content(); ?>

html代码如下:

<?php the_content(); ?>
<?php if(!emptyempty($error)) {
echo \'<p class=\"ludou-error\">\'.$error.\'</p>\';
}
if (!is_user_logged_in()) { ?>
<form name=\"registerform\" method=\"post\" action=\"<?php echo $_SERVER[\"REQUEST_URI\"]; ?>\" class=\"ludou-reg\">
<p>
<label for=\"user_login\">用户名

<input type=\"text\" name=\"user_login\" id=\"user_login\" class=\"input\" value=\"<?php if(!empty($sanitized_user_login)) echo $sanitized_user_login; ?>\" size=\"20\" />
</label>
</p>
<p>
<label for=\"user_email\">电子邮件

<input type=\"text\" name=\"user_email\" id=\"user_email\" class=\"input\" value=\"<?php if(!empty($user_email)) echo $user_email; ?>\" size=\"25\" />
</label>
</p>

<p>
<label for=\"user_pwd1\">密码(至少6位)

<input id=\"user_pwd1\" class=\"input\" type=\"password\" tabindex=\"21\" size=\"25\" value=\"\" name=\"user_pass\" />
</label>
</p>

<p>
<label for=\"user_pwd2\">重复密码

<input id=\"user_pwd2\" class=\"input\" type=\"password\" tabindex=\"21\" size=\"25\" value=\"\" name=\"user_pass2\" />
</label>
</p>

<p class=\"submit\">
<input type=\"hidden\" name=\"ludou_reg\" value=\"ok\" />
<input type=\"submit\" name=\"wp-submit\" id=\"wp-submit\" class=\"button button-primary button-large\" value=\"注册\" />
</p>
</form>
<?php
} else {
echo \'<p class=\"ludou-error\">您已注册成功,并已登录!</p>\';
}
?>

添加表单处理代码:在reg-page.php开头处中,将第一个 <?php 改成代码二(注意使用UTF-8编码保存)

php代码如下:

<?php
if( !emptyempty($_POST[\'ludou_reg\']) ) {
$error = \'\';
$sanitized_user_login = sanitize_user( $_POST[\'user_login\'] );
$user_email = apply_filters( \'user_registration_email\', $_POST[\'user_email\'] );
// Check the username
if ( $sanitized_user_login == \'\' ) {
$error .= \'<strong>错误</strong>:请输入用户名。
\';
} elseif ( ! validate_username( $user_login ) ) {
$error .= \'<strong>错误</strong>:此用户名包含无效字符,请输入有效的用户名
。\';
$sanitized_user_login = \'\';
} elseif ( username_exists( $sanitized_user_login ) ) {
$error .= \'<strong>错误</strong>:该用户名已被注册,请再选择一个。
\';
}
// Check the e-mail address
if ( $user_email == \'\' ) {
$error .= \'<strong>错误</strong>:请填写电子邮件地址。
\';
} elseif ( ! is_email( $user_email ) ) {
$error .= \'<strong>错误</strong>:电子邮件地址不正确。!
\';
$user_email = \'\';
} elseif ( email_exists( $user_email ) ) {
$error .= \'<strong>错误</strong>:该电子邮件地址已经被注册,请换一个。
\';
}

// Check the password
if(strlen($_POST[\'user_pass\']) < 6)
$error .= \'<strong>错误</strong>:密码长度至少6位!
\';
elseif($_POST[\'user_pass\'] != $_POST[\'user_pass2\'])
$error .= \'<strong>错误</strong>:两次输入的密码必须一致!
\';

if($error == \'\') {
$user_id = wp_create_user( $sanitized_user_login, $_POST[\'user_pass\'], $user_email );

if ( ! $user_id ) {
$error .= sprintf( \'<strong>错误</strong>:无法完成您的注册请求... 请联系<a href=\"mailto:%s\">管理员</a>!
\', get_option( \'admin_email\' ) );
}
else if (!is_user_logged_in()) {
$user = get_userdatabylogin($sanitized_user_login);
$user_id = $user->ID;

// 自动登录
wp_set_current_user($user_id, $user_login);
wp_set_auth_cookie($user_id);
do_action(\'wp_login\', $user_login);
}
}
}

希望本文所述对大家WordPress建站有所帮助。

WordPress添加前台注册功能的方法介绍 (https://www.wpmee.com/) WordPress使用教程 第1张

标签:

提交需求或反馈

Demand feedback