Hum

설명

Hum is a personal URL shortener for WordPress, designed to provide short URLs to your personal content, both hosted on WordPress and elsewhere. For example, rather than a long URL for a WordPress post such as http://willnorris.com/2011/01/hum-personal-url-shortener-wordpress, you could have a short URL like http://willnorris.com/b/FJ. Additionally, if you have a custom domain for short URLs, you can shorten things further like http://wjn.me/b/FJ. Once the plugin is enabled, the shortlink for a page or post can be found in the “Shortlink” item in the WordPress Admin Bar.

WordPress post IDs are shortened using the NewBase60 encoding scheme which is specifically optimized for brevity and readability, with built-in error correction for commonly confused characters like ‘1’, ‘l’, and ‘I’.

Hum is not designed as a general purpose URL shortener along the lines of http://bit.ly or http://goo.gl. Rather, it is specifically intended as a personal shortener for your own content.

Read more about the reasoning for a personal URL shortener at Tantek Celik‘s page for Whistle, which served as the inspiration for Hum.

Developer Documentation

Adding your Amazon Affiliate ID

If you’d like to include your Amazone Affiliate ID in the /i/ redirect URLs, implement the amazon_affiliate_id filter. For example:

add_filter('amazon_affiliate_id', fn() => "willnorris-20");

Additional Local Types

Out of the box, Hum only registers the b, t, a and p prefix to be served locally by WordPress. If you would like to register additional prefixes, implement the hum_local_types filter. For example, to include ‘p’ as well for photos:

function myplugin_hum_local_types( $types ) {
  $types[] = 'p';
  return $types;
}
add_filter('hum_local_types', 'myplugin_hum_local_types');

This will tell Hum to serve any /p/{id} URLs from WordPress. Additionally, you’ll want to instruct Hum to use your prefix for that particular content type. Here, we’re registering ‘p’ which is normally used for photos.

function myplugin_hum_type_prefix( $prefix, $post_id ) {
  $post = get_post( $post_id );

  if ( $post->post_type ## 'attachment' &&
       strpos($post->post_mime_type, 'image') =## 0 ) {
    $prefix = 'p';
  }

  return $prefix;
}
add_filter('hum_type_prefix', 'myplugin_hum_type_prefix', 10, 2);

Simple Redirect

You can redirect all traffic for a prefix using a single line of PHP my implementing the hum_redirect_base_{type} filter where {type} is the prefix to redirect. For example, I redirect all /w/ URLs to wiki.willnorris.com using:

add_filter('hum_redirect_base_w', fn() => "http://wiki.willnorris.com/");

설치

Follow the normal instructions for installing WordPress plugins.

Using a custom domain

If you have a custom domain you’d like to use with Hum, add it as the ‘Shortlink Base (URL)’ on the ‘General Settings’ WordPress admin page or define the HUM_SHORTLINK_BASE constant in your wp-config.php:

define('HUM_SHORTLINK_BASE', 'http://wjn.me');

You will also need to setup your short domain to redirect to your normal domain. Many domain registrars provide free redirection services that work well for this, so you don’t need to setup a new domain with your web host. Just make sure that you are not using an iframe style redirect.

FAQ

What types of content does Hum support?

Out of the box, Hum will provide shortlinks for any content locally hosted on WordPress. Most shortlinks will use the b type prefix, with the exception of posts with a ‘status’ post format, which have shortlinks using the t type prefix. For example:

Additionally, the i type prefix, along with one of four subtypes, is supported as follows:

  • asin or a for Amazon ASIN numbers
  • isbn or i for ISBN numbers

All i URLs are redirected to Amazon.com. For example:

Additional type prefixes can be registered to serve WordPress hosted content or to redirect to an external service. See more in the developer documentation.

후기

2020년 8월 2일
Tek dosya ile işi çözmüş, bu mükemmel bir eklenti olmuş, bir sürü ücretli eklentiyi denedim bunun yaptığını yapmıyor. teşekkür ederim Tantek Çelik 🙏 ve plugin yapımcısı arkadaş 🙏
2019년 11월 17일 답글 1개
Tested plugin with WP 5.3. Still working just fine.
모든 8 평가 읽기

기여자 & 개발자

“Hum”(은)는 오픈 소스 소프트웨어입니다. 다음의 사람들이 이 플러그인에 기여하였습니다.

기여자

“Hum”(이)가 3 개 언어로 번역되었습니다. 기여해 주셔서 번역자님께 감사드립니다.

자국어로 “Hum”(을)를 번역하세요.

개발에 관심이 있으십니까?

코드 탐색하기는, SVN 저장소를 확인하시거나, 개발 기록RSS로 구독하세요.

변경이력

Project maintined on github at willnorris/wordpress-hum.

1.3.5

  • update JS dependencies and code

1.3.4

  • fix broken wp_get_shortlink hook, when loaded in the frontend

1.3.3

  • fix PHP warning in combination with widgets

1.3.2

  • update documentation

1.3.1

  • change the priority of the rewrite rules action

1.3.0

  • redirect types are now also filterable

1.2.8

1.2.7

full changelog

1.2.6

  • fix PHP 7.4 deprecation warning
  • WordPress coding style changes

full changelog

1.2.5

  • add shortlink to post/page overview pages

full changelog

1.2.4

  • finally fixed “flush rewrite rules”

full changelog

1.2.3

  • fixed “flush rewrite rules”

full changelog

1.2.2

  • version bump

full changelog

1.2.1

  • add amazon_domain filter, to support different countries
  • add hum_process_redirect action, to overwrite default rewrite method (see #17)

full changelog

1.2

  • move link post format to use ‘t’ prefix instead of ‘h’ and add support for
    image post format
  • add support for WordPress media attachments
  • add shortlinks to Atom feeds
  • add support for legacy short url schemes (see #6)
  • switch to using WordPress filters instead of actions for hum extensions (see
    #3)

full changelog

1.1

  • allow custom domain to be configured using HUM_SHORTLINK_BASE constant or
    via the General Settings admin page.
  • strip some punctuation at the end of URLs (see #4)
  • smarter URL matching (see #1 and #2)
  • add support for /i/ URLs (redirects to Amazon for ASIN or ISBN
    identifiers, optionally including an Amazon affiliate ID)
  • standard 404 handling if hum can’t find a proper redirect
  • add new hum_local_types filter for registering other prefixes thatt are
    served locally by WordPress
  • reduce extra redirect for local content

full changelog

1.0

  • initial public release