给WordPress自定义文章类型添加短链接

事业上得寸进尺,生活中不论短长,何愁事业无成。人生最精彩的不是实现梦想的瞬间,而是坚持梦想的过程。

WordPress内置了一种文章短链接,型如 www.yoursite.com?p=1 (其中 1 为文章的ID),你可以在后台发布文章的时候查看到:

而自定义文章类型默认是生成短链接的,所以我们需要添加相应的函数。比如我们要给 book 这种自定义文章类型添加短链接功能,可以在你的插件文件或者当前主题的 functions.php 添加类似下面的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/**
 * 给自定义文章类型“book”添加短链接
 */
function wpdaxue_shortlinks_for_book( $shortlink, $id, $context ) {

    // 上下文可以是一篇文章、附件、或查询
    $post_id = 0;

    if ( 'query' == $context && is_singular( 'book' ) ) {

        // 如果上下文是查询,使用get_queried_object_id 获取ID
        $post_id = get_queried_object_id();

    }
    elseif ( 'post' == $context ) {

        // 如果上下文是文章,使用以传递的 $id
        $post_id = $id;

    }

    // 只对 book这种自定义文章类型操作
    if ( 'book' == get_post_type( $post_id ) ) {
        $shortlink = home_url( '?p=' . $post_id );
    }

    return $shortlink;
}
add_filter( 'pre_get_shortlink', 'wpdaxue_shortlinks_for_book', 10, 3 );

/** * 给自定义文章类型“book”添加短链接 */ function wpdaxue_shortlinks_for_book( $shortlink, $id, $context ) { // 上下文可以是一篇文章、附件、或查询 $post_id = 0; if ( 'query' == $context && is_singular( 'book' ) ) { // 如果上下文是查询,使用get_queried_object_id 获取ID $post_id = get_queried_object_id(); } elseif ( 'post' == $context ) { // 如果上下文是文章,使用以传递的 $id $post_id = $id; } // 只对 book这种自定义文章类型操作 if ( 'book' == get_post_type( $post_id ) ) { $shortlink = home_url( '?p=' . $post_id ); } return $shortlink; } add_filter( 'pre_get_shortlink', 'wpdaxue_shortlinks_for_book', 10, 3 );

然后在循环中使用 wp_get_shortlink() 函数获取短链接:

1
<?php echo wp_get_shortlink(); ?>

<?php echo wp_get_shortlink(); ?>

注:本文的用途不是给后台自定义文章类型发布时添加“获取短链接地址”的功能,而是让自定义文章类型生成短链接,然后可以在需要显示的地方输出。

参考资料:http://wp.tutsplus.com/articles/tips-articles/quick-tip-add-shortlinks-to-custom-post-types/

到此这篇关于给WordPress自定义文章类型添加短链接就介绍到这了。立下人生志向,活出人生精彩;铺好今天沙石,走出明天大道。更多相关给WordPress自定义文章类型添加短链接内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

您可能有感兴趣的文章
WordPress站点Gravatar头像前后台不显示的如何解决办法

WordPress做公司官网好吗?会不会显得档次很低?

WordPress主题需要支持https吗?WordPress站点如何如何实现https?

WordPress站点的页面/标签/分类URL地址如何添加.html?

WordPress站点更换了域名后数据库应该如何操作替换新旧域名?