Більше результатів...

Загальні селектори
Тільки точні збіги
Шукати у заголовках
Шукати у контенті
Вибір типів постів
Фільтрувати за категоріями
FAQ
Hostenko
Натхнення
Відео уроки
Новини
Плагіни
теми
Уроки
Хакі

Якщо ви використовуєте якісь соціальні медіа і, зокрема, Twitter, ви точно зустрічали шортлинки (скорочені посилання), які працюють як мітки, що вказують на конкретну сторінку, замінюючи її довгу адресу. Насправді вони використовуються вже десять років, але їх використання стало насправді популярним тільки з появою сервісів скорочення посилань, які надають статистику кліків, а також з обмеженням кількості символів у твітах.

Дивіться також:

WordPress має свій вбудований "скорочувач", який, за замовчуванням, не особливо заслуговує на таку назву. Це посилання виду www.yoursite.com?p=1, які вказують на окремий запис, і ви можете отримати їх, натиснувши кнопку Отримати коротке посилання у вікні редагування вашого запису.

inet.ws - Powerful VPS Hosting в США, Canada, UK та DE!

Як додати короткі посилання в типи постів, що настроюються.

Для цього є своя причина: WordPress не хоче використовувати жодний сторонній сервіс для скорочення посилань, і за короткими стандартними посиланнями www.yoursite.com?p=1 коштує API, що дозволяє вам замінити його більш ґрунтовно скороченою адресою від іншого сервісу — або навіть від вашого власного.

Але короткі посилання WordPress є лише для записів, але не для сторінок або інших типів записів. У цьому короткому посібнику я покажу, як змінити це. І подібним чином ви зможете змінити стандартне скорочене посилання на посилання з сервісу скорочення посилань - тавтологія, так.

Якщо копнути у вихідний код движка WordPress, а точніше нас цікавить функція wp_get_shortlink(); з файлу wp-includes/link-template.php, то ми побачимо таке:

function wp_get_shortlink($id = 0, $context = 'post', $allow_slugs = true) {
 
    // Allow plugins to short-circuit this function.
    $shortlink = apply_filters('pre_get_shortlink', false, $id, $context, $allow_slugs);
    if ( false !== $shortlink )
        return $shortlink;
 
        ...

Фільтр pre_get_shortlink дозволить нам обійти стандартну обробку коротких посилань WordPress. Щоб зробити це, нашому плагіну потрібно просто зачепитися за цей фільтр і повернути щось відмінне від 'false.

/**
 * A function which adds a shortlinks button for 'portfolio' post type
 */
function wptuts_shortlinks_for_portfolio( $shortlink, $id, $context ) {
 
    // Context can be post/blog/meta ID or query
    $post_id = 0;
 
    if ( 'query' == $context && is_singular( 'portfolio' ) ) {
 
        // If context is query use current queried object for ID
        $post_id = get_queried_object_id();
 
    }
    elseif ( 'post' == $context ) {
 
        // If context is post use the passed $id
        $post_id = $id;
 
    }
 
    // Only do something if of portfolio post type
    if ( 'portfolio' == get_post_type( $post_id ) ) {
        $shortlink = home_url( '?p=' . $post_id );
    }
 
    return $shortlink;
}
add_filter( 'pre_get_shortlink', 'wptuts_shortlinks_for_portfolio', 10, 3 );

Зверніть увагу, що якщо ви не хочете змінювати коротке посилання (наприклад, це не тип запису), важливо повернути $shortlink (значення, отримане з фільтра, і передане нам фільтром), а не 'false' — оскільки інші плагіни вже, можливо, змінили $shortlink - І повернувши значення false, ви перезапише їх зміни.

Джерело: WP.tutsplus.com
inet.ws - Powerful VPS Hosting в США, Canada, UK та DE!
Олексій Шевченко
редактор wpcafe
Вивчає сайтобудування з 2008 року. Практикуючий вебмайстер, який спеціалізується на створенні сайтів на WordPress. Задати питання Олексію можна на https://profiles.wordpress.org/wpthemeus/

Коментарі до запису: 0

Додати коментар або відгук