系统函数
// 获取系统名称
bloginfo('name');
// 获取模板目录下的style.css文件地址
get_stylesheet_uri();
// 获取header.php文件中内容
get_header();
// 获取footer.php文件中内容
get_footer();
// 获取系统根目录
home_url();
// 获取搜索框
get_search_form();
// 获取搜索关键字(搜索框里的文字)
get_search_query();
// 获取导航菜单, theme_location 在functions.php里设置
wp_nav_menu([
'container' => 'div', // 容器标签
'container_class' => 'nav', // ul 父节点class
'container_id' => 'nav', // ul 节点id
'theme_location' => 'primary', // 导航别名 => 对应 functions.php里注册的, 从后台把这个附加上导航
'items_wrap' => '<ul class="nav-ul">%3$s</ul>', // 包装列表
'menu_class' => 'menu1',
'menu_id' => 'nav-ul',
]);
wp_header();
wp_footer();
文章列表
// 循环输出文章列表
while (have_posts()) {
// 获取当前文章
the_post();
// 获取当前文章标题
the_title('<h1><a href="' . get_permalink() . '" target="_blank">', '</a></h1>');
// 获取当前文章摘要
the_excerpt();
// 获取发布日期
echo get_the_date();
// 获取作者
echo get_the_author();
// 获取模板,将上面信息做成模板,然后,输出模板
get_template_part("templates/news-item");
}
// 获取分页
the_posts_navigation([
'mid_size' => 2, // 当前页面前和后显示的页码数量
'prev_text' => '上一页',
'next_text' => '下一页'
]);
小工具
/**
* 获取小工具get_sidebar("文件名")
* 文件为:sidebar-文件名.php
*/
//
echo get_sidebar("menus")
/**
* 获取小工具内容dynamic_sidebar('小工具名称'),
* 小工具名称在functions.php里定义
* 可放在 sidebar-文件名.php中
*/
dynamic_sidebar('侧边导航');
分类
// 获取文章分类
$args = array(
'orderby' => 'name', // 根据分类名称排序
'order' => 'DESC' // 排序方式为升序
);
$category = get_categories($args);
foreach ($category as $k => $v) {
/*
$v = object(WP_Term)
["term_id"] => int(4)
["name"] => string(12) "新闻中心"
["slug"] => string(36) "%e6%96%b0%e9%97%bb%e4%b8%ad%e5%bf%83"
["term_group"] => int(0)
["term_taxonomy_id"] => int(4)
["taxonomy"] => string(8) "category"
["description"] =>string(0) ""
["parent"] => int(0)
["count"] => int(2)
["filter"] => string(3) "raw"
["cat_ID"] => int(4)
["category_count"] => int(2)
["category_description"] => string(0) ""
["cat_name"] => string(12) "新闻中心"
["category_nicename"] => string(36) "%e6%96%b0%e9%97%bb%e4%b8%ad%e5%bf%83"
["category_parent"] => int(0)
*/
// 获取分类链接
// get_category_link()
echo '<a href="' . get_category_link( $v->term_id ) . '">' . $v->name . '</a><br>';
}
// 获取指定分类下的二级分类
// $parent_category_id 父分类id
$category = get_categories(['child_of' => $parent_category_id]);
// 获取当前文章所在分类
$category = get_the_category(get_the_ID());
foreach ($category as $k => $v) {
echo $v->name , ',';
}
// 根据名称获取id
get_cat_ID("父分类名称");
文章详情
// 获取当前文章
the_post();
// 当前文章id
get_the_ID();
//
获取文章标题
echo the_title('<h1>', '</h1>');
// 获取作者
echo the_author();
// 获取日期
echo the_date();
// 获取内容
echo the_content();
// 获取上条和下条
the_post_navigation([
'prev_text' => '上条:%title',
'next_text' => '下条:%title',
'in_same_term' => false,
'excluded_terms' => '',
'taxonomy' => 'category',
'screen_reader_text' => ' ',
'aria_label' => __( 'Posts' ),
'class' => 'post-navigation',
]);
// 获取评论
comments_template();
评论
// 评论总数
echo '共计:', get_comments_number(), '条评论';
// 评论列表
wp_list_comments();
// 上一页,下一页
the_comments_navigation();
// 发布评论表单
comment_form();
链接
// 先在functions.php里开启链接功能
add_filter('pre_option_link_manager_enabled', '__return_true');
/*
* 获取分类ID为1的所有链接 正式使用中可以把1改为自己的链接分类ID
* 获取所有链接,参数不传
*/
$bookmarks = get_bookmarks(['category' => 1]);
// 遍历每个链接
foreach ($bookmarks as $v) {
/*
object(stdClass)#1039 (13) {
["link_id"]=>string(1) "1"
["link_url"]=>string(23) "http://www.baidu.com"
["link_name"]=>string(12) "百度"
["link_image"]=>string(0) ""
["link_target"]=>string(6) "_blank"
["link_description"]=>string(18) "百度搜索引擎"
["link_visible"]=>string(1) "Y"
["link_owner"]=>string(1) "1"
["link_rating"]=>string(1) "0"
["link_updated"]=>string(19) "0000-00-00 00:00:00"
["link_rel"]=>string(0) ""
["link_notes"]=>string(0) ""
["link_rss"]=>string(0) ""
}
*/
// 显示链接的名称和URL
echo '<a href="' . $v->link_url . '">' . $v->link_name . '</a><br>';
}
functions.php
/**
* 启用:菜单 -》 外观 -》 菜单
* 注册:菜单
* 上面函数有了,下面的这个就不用了,
*/
add_theme_support('menus');
/**
* 启用: 菜单 -》 外观 -》 菜单
* 此处设置的项,会在菜单 -》 菜单设置 -》 显示位置 里显示
*/
register_nav_menus([
'primary' => '主导航菜单',
'footer' => '底部菜单',
'left' => '左侧菜单'
]);
/**
* 启用:菜单 -》 外观 -》 小工具
* 注册:小工具
* 如果使用了自定义侧边栏,这里就不用单独开启了
*/
//add_theme_support('widgets');
/**
* 自定义侧边栏
* @time 2024/4/15 9:30
*/
function custom_sidebar() {
register_sidebar([
'name' => '侧边导航',
'id' => "my-menu",
'description' => '侧面导航',
'class' => '',
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' => "</li>\n",
'before_title' => '<h2 class="widgettitle">',
'after_title' => "</h2>\n",
'before_sidebar' => '',
'after_sidebar' => '',
'show_in_rest' => false,
]);
register_sidebar([
'name' => '日历',
'id' => "my-calendar",
'description' => '侧面日历',
'class' => '',
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' => "</li>\n",
'before_title' => '<h2 class="widgettitle">',
'after_title' => "</h2>\n",
'before_sidebar' => '',
'after_sidebar' => '',
'show_in_rest' => false,
]);
}
/**
* 将自定义侧边栏绑定到系统
*/
add_action('widgets_init', 'custom_sidebar');
/**
* 显示文章摘要长度
* @param $length
* @return int
* @time 2024/4/13 17:15
*/
function custom_excerpt_length($length) {
return 20;
}
/**
* 注册: excerpt_length, 将custom_excerpt_length替换原设置
* 全局列表摘要的文字显示字数
*/
add_filter('excerpt_length', 'custom_excerpt_length');
// 开启文章特色图片功能,用于文章列表
add_theme_support( 'post-thumbnails' );
// 开启后台文章列表特色图片功能
if (function_exists( 'add_theme_support' )){
add_filter('manage_posts_columns', 'my_add_posts_columns', 5);
add_action('manage_posts_custom_column', 'my_custom_posts_columns', 5, 2);
}
function my_add_posts_columns($defaults){
$defaults['my_post_thumbs'] = '特色图像';
return $defaults;
}
function my_custom_posts_columns($column_name, $id){
if($column_name === 'my_post_thumbs'){
echo the_post_thumbnail( array(125,80) );
}
}
// 开启链接功能
add_filter('pre_option_link_manager_enabled', '__return_true');
/**
* 解决头像再CN不显示问题
*/
if ( ! function_exists( 'get_cravatar_url' ) ) {
/**
* 替换 Gravatar 头像为 Cravatar 头像
*
* Cravatar 是 Gravatar 在中国的完美替代方案,您可以在 https://cravatar.com 更新您的头像
*/
function get_cravatar_url( $url ) {
$sources = array(
'www.gravatar.com',
'0.gravatar.com',
'1.gravatar.com',
'2.gravatar.com',
'secure.gravatar.com',
'cn.gravatar.com',
'gravatar.com',
);
return str_replace( $sources, 'cravatar.cn', $url );
}
add_filter( 'um_user_avatar_url_filter', 'get_cravatar_url', 1 );
add_filter( 'bp_gravatar_url', 'get_cravatar_url', 1 );
add_filter( 'get_avatar_url', 'get_cravatar_url', 1 );
}
if ( ! function_exists( 'set_defaults_for_cravatar' ) ) {
/**
* 替换 WordPress 讨论设置中的默认头像
*/
function set_defaults_for_cravatar( $avatar_defaults ) {
$avatar_defaults['gravatar_default'] = 'Cravatar 标志';
return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'set_defaults_for_cravatar', 1 );
}
if ( ! function_exists( 'set_user_profile_picture_for_cravatar' ) ) {
/**
* 替换个人资料卡中的头像上传地址
*/
function set_user_profile_picture_for_cravatar() {
return '<a href="https://cravatar.com" target="_blank">您可以在 Cravatar 修改您的资料图片</a>';
}
add_filter( 'user_profile_picture_description', 'set_user_profile_picture_for_cravatar', 1 );
}