建站教程

建站教程

Products

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

如何制作wordpress友情链接独立页面(WordPress获取使用指定页面模板的页面id)

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


如何制作wordpress友情链接独立页面

如何制作wordpress友情链接独立页面?之前百度了很多次,看了不少文章,这里我也把制作的过程总结下:

首先开启友情链接功能

在主题functions.php添加代码,开启链接功能

/**

* 打开友情链接

*/

add_filter(\'pre_option_link_manager_enabled\', \'__return_true\');

添加友情链接页面

一般WordPress主题都会有一个默认页面page.php,这里我们需要做的就是复制page.php改名为page-links.php,这个就是我们的友情链接页面,修改模板名称:

<?php

/*

Template Name: 友情链接

*/

?>

输出链接内容

找到page-links.php中的 the_content() 代码,再下面添加输出链接的代码:

<!-- 友情链接 -->

<div class=\"page-links\">

<?php

function get_the_link_items($id = null)

{

$bookmarks = get_bookmarks(\'orderby=date&category=\' . $id);

$default_ico = \'https://s.w.org/favicon.ico?2\';

$output = \'\';

if (!empty($bookmarks)) {

$output .= \'<ul>\';

foreach ($bookmarks as $bookmark) {

$output .= \'<li><img src=\"\' . $bookmark->link_url . \'/favicon.ico\" onerror=\"javascript:this.src=\\\'\' . $default_ico . \'\\\'\" /><a href=\"\' . $bookmark->link_url . \'\" title=\"\' . $bookmark->link_description . \'\" target=\"_blank\" >\' . $bookmark->link_name . \'</a></li>\';

}

$output .= \'</ul><div class=\"clear\"></div>\';

}

return $output;

}

$linkcats = get_terms(\'link_category\');

if (!empty($linkcats)) {

foreach ($linkcats as $linkcat) {

$result .= \'<h3>\' . $linkcat->name . \'</h3>\';

if ($linkcat->description) $result .= \'<blockquote>\' . $linkcat->description . \'</blockquote>\';

$result .= get_the_link_items($linkcat->term_id);

}

} else {

$result = get_the_link_items();

}

echo $result;

?>

</div>

以上可以获取链接分类下的所有链接,如果无分类,则输出所有链接

内容显示美化

css代码

/* 友情链接 */

.page-links{overflow:hidden;margin:0 0 18px;padding:0;}

.page-links a{color:#555;text-decoration:none;}

.page-links a:hover{color:#069;text-decoration:none;}

.page-links ul{margin:0;padding:0;}

.page-links ul li{

float:left;

width:250px;

line-height:16px;

height:20px;

margin:0 10px 10px 0;

padding:8px;

list-style-type:none;

border:1px solid #ddd;

}

.page-links ul li:hover{background:#f2f2f2;}

.page-links ul li img{width:16px;height:16px;margin:0 5px -2px 0;padding:0;border:none;}

好了,经过以上几步,友情链接独立页面就完成了。

WordPress获取使用指定页面模板的页面id

什么是模板呢?默认情况 WordPress是使用主题目录下page.php来作为模板显示页面的,但是有时候我们需要不同的模板来显示页面,比如登录、注册和投稿页面等,这些页面跟普通的页面是有所区别,这时候WordPress提供了页面模板让开发者可以自定义WordPress页面外观甚至功能。

页面模板php文件的匹配

WordPress中是通过自定义栏目来记录页面所使用的模板的,自定义栏目名称:_wp_page_template,值为模板的文件名:

  • 如果是默认模板page.php,那么 _wp_page_template 的值为:default。如果从始至终都是默认模板,WordPress不会添加此自定义栏目
  • 如果是主题根目录下的自定义页面模板,那么那么 _wp_page_template 的值为文件名,如:page-login.php
  • 如果是主题子目录下的页面模板,那么 _wp_page_template 的值包含路径,如:templates/page-login.php

因为这个自定义栏目的名称是以下划线开头的,属于隐藏的自定义栏目,所以你在页面编辑页的自定义栏目中是看不到这个字段的。

通过页面模板获取页面ID

我新建了一个登录页面的模板,命名为login.php,并且后台已经有页面在使用这个模板了,那我就可以使用以下函数来获取使用login.php这个模板的页面id:

function get_page_id_from_template($template) {   global $wpdb;   // 多个页面使用同一个模板我就没辙了

   $page_id = $wpdb->get_var($wpdb->prepare(\"SELECT `post_id`

                              FROM `$wpdb->postmeta`, `$wpdb->posts`

                              WHERE `post_id` = `ID`

                                    AND `post_status` = \'publish\'

                                    AND `meta_key` = \'_wp_page_template\'

                                    AND `meta_value` = %s                                    LIMIT 1;\", $template));   return $page_id;

}

//以下是获取使用该模板的页面地址

<a href=\"<?php echo get_permalink(get_page_id_from_template(\'login.php\')) ?>\" >登录</a>

标签:

提交需求或反馈

Demand feedback