WordPress 一些常用函数方法

本文详细介绍了WordPress中一系列核心系统函数,包括获取站点信息、模板引用、菜单管理、文章列表、小工具、分类和导航、评论、链接以及主题定制函数,为开发者提供了全面的WordPress开发参考。
摘要由CSDN通过智能技术生成

系统函数

//	获取系统名称
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 );
}


  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值