
get_the_category_list ( $separator = '', $parents = '', $post_id = false )
get_the_category_list: 这个函数检索分配给当前文章的分类的格式化字符串,以及它们的档案页的链接。它需要两个可选参数:类别链接之间的分隔符,以及在类别列表前显示的文本。它返回格式化的类别列表,是一个字符串。
以HTML列表或自定义格式检索一个文章的类别列表。
通常用于快速的、有分隔线的(如逗号分隔的)类别列表,作为文章条目元的一部分。
对于一个更强大的、基于列表的功能,见wp_list_categories()。
function get_the_category_list( $separator = '', $parents = '', $post_id = false ) { global $wp_rewrite; if ( ! is_object_in_taxonomy( get_post_type( $post_id ), 'category' ) ) { /** This filter is documented in wp-includes/category-template.php */ return apply_filters( 'the_category', '', $separator, $parents ); } /** * Filters the categories before building the category list. * * @since 4.4.0 * * @param WP_Term[] $categories An array of the post's categories. * @param int|false $post_id ID of the post to retrieve categories for. * When `false`, defaults to the current post in the loop. */ $categories = apply_filters( 'the_category_list', get_the_category( $post_id ), $post_id ); if ( empty( $categories ) ) { /** This filter is documented in wp-includes/category-template.php */ return apply_filters( 'the_category', __( 'Uncategorized' ), $separator, $parents ); } $rel = ( is_object( $wp_rewrite ) && $wp_rewrite->using_permalinks() ) ? 'rel="category tag"' : 'rel="category"'; $thelist = ''; if ( '' === $separator ) { $thelist .= '<ul class="post-categories">'; foreach ( $categories as $category ) { $thelist .= "nt<li>"; switch ( strtolower( $parents ) ) { case 'multiple': if ( $category->parent ) { $thelist .= get_category_parents( $category->parent, true, $separator ); } $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>' . $category->name . '</a></li>'; break; case 'single': $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>'; if ( $category->parent ) { $thelist .= get_category_parents( $category->parent, false, $separator ); } $thelist .= $category->name . '</a></li>'; break; case '': default: $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>' . $category->name . '</a></li>'; } } $thelist .= '</ul>'; } else { $i = 0; foreach ( $categories as $category ) { if ( 0 < $i ) { $thelist .= $separator; } switch ( strtolower( $parents ) ) { case 'multiple': if ( $category->parent ) { $thelist .= get_category_parents( $category->parent, true, $separator ); } $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>' . $category->name . '</a>'; break; case 'single': $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>'; if ( $category->parent ) { $thelist .= get_category_parents( $category->parent, false, $separator ); } $thelist .= "$category->name</a>"; break; case '': default: $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>' . $category->name . '</a>'; } ++$i; } } /** * Filters the category or list of categories. * * @since 1.2.0 * * @param string $thelist List of categories for the current post. * @param string $separator Separator used between the categories. * @param string $parents How to display the category parents. Accepts 'multiple', * 'single', or empty. */ return apply_filters( 'the_category', $thelist, $separator, $parents ); }
钩子函数和过滤器函数的主要区别是它们的行为方式。钩子函数是在特定的时间点被调用的函数,它们可以执行各种任务,但通常不会返回值。而过滤器函数则是对特定的值进行过滤和修改的函数,它们会接收一个值作为输入,然后返回一个新的值作为输出。
钩子函数(Hooks)和过滤器函数(Filters)是用于修改和扩展WordPress(和其他编程环境)功能的核心概念。它们的主要区别在于它们的用途和工作方式。
1. 钩子函数(Hooks):
2. 过滤器函数(Filters):
主要区别在于它们的目的和使用场景:
重要的是要理解钩子函数和过滤器函数在编程环境中的作用,以便正确使用它们来实现自定义功能和修改数据。
apply_filters
函数用于调用一个钩子上的所有过滤器函数。它的基本用法如下:
$value = apply_filters( 'hook_name', $value, $var1, $var2, ... );
其中:
'hook_name
' 是你要应用过滤器函数的钩子名称。
$value
是你要传递给过滤器函数的值。
$var1, $var2, …
是你要传递给过滤器函数的其他参数。
常量的命名有一些约定和规则。首先,常量的名称应该全部大写,用下划线分隔单词。例如,MY_CONSTANT_NAME
。其次,常量的名称应该是有意义的,能够清晰地描述常量的用途或值。最后,避免使用已经被PHP或WordPress定义的常量名称,以避免冲突。
在WordPress中,常量的命名规则和约定如下:
ABSPATH
。WP_DEBUG
.WP_
,例如: WP_CONTENT_DIR
。例如,以下是符合WordPress常量命名规则的示例:
define( 'WP_DEBUG', true ); define( 'WP_CONTENT_DIR', '/var/www/html/wp-content' ); define( 'MY_CUSTOM_CONSTANT', 'Hello World' );
遵循这些命名规则和约定可以帮助保持代码的一致性和可读性,使得WordPress主题或插件更易于理解、维护和扩展。
要使用WordPress REST API,可以按照以下步骤进行操作:
这些是使用WordPress REST API的基本步骤。你可以根据具体需求进行深入学习和实践,探索更多可用的终点和功能。对于详细的API文档和参考,请查阅WordPress官方文档或REST API官方手册。
在WordPress中,钩子函数可以在以下几个地方使用:
add_filter()
`函数注册在特定过滤器(filter hooks)上执行的钩子函数。add_action()
`函数在特定的动作点上添加自定义内容,或使用` add_filter()
`函数修改主题函数的输出。functions.php
`的文件,用于添加自定义功能和修改WordPress行为。该文件中可以使用钩子函数来注册特定的动作点和过滤器,并添加相应的钩子函数来处理这些事件。do_action()
`或` apply_filters()
`函数调用,然后在需要的地方注册相应的钩子函数。总结起来,WordPress中的钩子函数可以在插件、主题、自定义功能文件以及WordPress核心文件中使用,用于注册和处理特定的WordPress事件或动作。这允许开发者在这些地方插入自定义逻辑,以实现个性化的功能和修改WordPress的行为。
wp_insert_post()
函数用于插入新的文章。你需要传递一个关联数组,包含文章的各项参数,如标题、内容、分类等。例如:
$post_data = array( 'post_title' => '新的文章', 'post_content' => '这是一篇新的文章。', 'post_status' => 'publish', // 设置为 'publish' 以立即发布文章 'post_type' => 'post', // 也可以设置为 'page' 或其他自定义的文章类型 ); $post_id = wp_insert_post($post_data);
如果你想要插入更复杂的文章,例如包含多个分类或标签,你可以在 $post_data
数组中添加更多的键值对。