wp_list_bookmarks 函数是 WordPress 提供的可以通过后台添加设置友链的一个功能,相当的方便和实用,但是最近子凡遇到一个不够完善的地方,那就是 wp_list_bookmarks 函数中 categorize 参数为 false 时,可以得到最极简的链接列表,但是与此同时就无法使用 exclude_category 参数排除链接分类目录,所以子凡就来提供一个方法。
首先可能由于你使用的 WordPress 最新版本,导致 WordPress 后台根本没有“链接”管理这个菜单,这是由于 WordPress 3.5 后默认隐藏了链接管理功能,所以显示只需要你在当前主题 functions.php 文件中加入一行代码即可:
//WordPress 恢复链接管理功能 add_filter( 'pre_option_link_manager_enabled', '__return_true' );
回到正题,还是简单的说一下子凡的思路,WordPress 链接管理其实主要就是用于我们常说的友情链接来使用,而友情链接一般需要在首页展示,但是许多的情况下又并不是需要将所有链接都展现到首页,所以子凡要分享的就是如何在首页也能完全实现友链的自定义排除。
$args = array( 'limit' => -1,//显示链接的数量 'exclude_category' => 11,//排除链接的分类目录 ID 'echo' => 0,//不输出 ); $op = ''; preg_match_all('/<a .*?>.*?</a>/', wp_list_bookmarks( $args ), $links); foreach($links[0] as $link){ $op .= '<li>'.$link.'</li>'; } echo '<ul>'.$op.'</ul>';
输出代码效果:
<ul><li><a href="https://www.freexyz.cn/" target="_blank" rel="noopener noreferrer">免费资源网</a></li><li><a href="https://www.freexyz.net/" target="_blank" rel="noopener noreferrer">免费素材</a></li></ul>
好啦,就是这样啦,本代码主要用于首页的代码调用,并且需要将链接做分类,这样才能利用链接分类目录 ID 来实现排除,解决了 categorize 参数无法排除的问题,也避免了不使用 categorize 参数也能将代码精简的目的。