PHP 8.2.31
Preview: shortlinks.php Size: 4.37 KB
/home/nshryvcy/himaltourism.com/wp-content/plugins/jetpack/modules/shortlinks.php

<?php
/**
 * Module Name: WP.me Shortlinks
 * Module Description: Generates shorter links using the wp.me domain.
 * Sort Order: 8
 * First Introduced: 1.1
 * Requires Connection: Yes
 * Auto Activate: No
 * Module Tags: Social
 * Feature: Writing
 * Additional Search Queries: shortlinks, wp.me
 *
 * @package automattic/jetpack
 */

add_filter( 'pre_get_shortlink', 'wpme_get_shortlink_handler', 1, 4 );

if ( ! function_exists( 'wpme_dec2sixtwo' ) ) {
	/**
	 * Converts number to base 62.
	 *
	 * @param int $num Number.
	 *
	 * @return string Value in base 62.
	 */
	function wpme_dec2sixtwo( $num ) {
		$index = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
		$out   = '';

		if ( $num < 0 ) {
			$out = '-';
			$num = abs( $num );
		}

		for ( $t = floor( log10( $num ) / log10( 62 ) ); $t >= 0; $t-- ) {
			$a   = floor( $num / pow( 62, $t ) );
			$out = $out . substr( $index, $a, 1 );
			$num = $num - ( $a * pow( 62, $t ) );
		}

		return $out;
	}
}

/**
 * Returns the WP.me shortlink.
 *
 * @param int    $id Post ID, or 0 for the current post.
 * @param string $context The context for the link. One of 'post' or 'query'.
 * @param bool   $allow_slugs Whether to allow post slugs in the shortlink.
 *
 * @return string
 */
function wpme_get_shortlink( $id = 0, $context = 'post', $allow_slugs = true ) {
	global $wp_query;

	$blog_id = Jetpack_Options::get_option( 'id' );

	if ( 'query' === $context ) {
		if ( is_singular() ) {
			$id      = $wp_query->get_queried_object_id();
			$context = 'post';
		} elseif ( is_front_page() ) {
			$context = 'blog';
		} else {
			return '';
		}
	}

	if ( 'blog' === $context ) {
		if ( empty( $id ) ) {
			$id = $blog_id;
		}

		return 'https://wp.me/' . wpme_dec2sixtwo( $id );
	}

	$post = get_post( $id );

	if ( empty( $post ) ) {
			return '';
	}

	$post_id = $post->ID;
	$type    = '';

	if ( $allow_slugs && 'publish' === $post->post_status && 'post' === $post->post_type && strlen( $post->post_name ) <= 8 && false === strpos( $post->post_name, '%' )
		&& false === strpos( $post->post_name, '-' ) ) {
		$id   = $post->post_name;
		$type = 's';
	} else {
		$id = wpme_dec2sixtwo( $post_id );
		if ( 'page' === $post->post_type ) {
			$type = 'P';
		} elseif ( 'post' === $post->post_type || post_type_supports( $post->post_type, 'shortlinks' ) ) {
			$type = 'p';
		} elseif ( 'attachment' === $post->post_type ) {
			$type = 'a';
		}
	}

	if ( empty( $type ) ) {
		return '';
	}

	return 'https://wp.me/' . $type . wpme_dec2sixtwo( $blog_id ) . '-' . $id;
}

/**
 * Get the shortlink handler.
 *
 * Used with the Core pre_get_shortlink hook.
 *
 * @param string $shortlink Shortlink value from the action. Ignored.
 * @param int    $id Post ID (0 for the current post).
 * @param string $context The context for the link. One of 'post' or 'query'.
 * @param bool   $allow_slugs Whether to allow post slugs in the shortlink.
 *
 * @return string
 */
function wpme_get_shortlink_handler( $shortlink, $id, $context, $allow_slugs ) {
	return wpme_get_shortlink( $id, $context, $allow_slugs );
}

/**
 * Add Shortlinks to the REST API responses.
 *
 * @since 6.9.0
 *
 * @action rest_api_init
 * @uses register_rest_field, wpme_rest_get_shortlink
 */
function wpme_rest_register_shortlinks() {
	// Post types that support shortlinks by default.
	$supported_post_types = array(
		'attachment',
		'page',
		'post',
	);

	// Add any CPT that may have declared support for shortlinks.
	foreach ( get_post_types() as $post_type ) {
		if (
			post_type_supports( $post_type, 'shortlinks' )
			&& post_type_supports( $post_type, 'editor' )
		) {
			$supported_post_types[] = $post_type;
		}
	}

	register_rest_field(
		$supported_post_types,
		'jetpack_shortlink',
		array(
			'get_callback'    => 'wpme_rest_get_shortlink',
			'update_callback' => null,
			'schema'          => null,
		)
	);
}

/**
 * Get the shortlink of a post.
 *
 * @since 6.9.0
 *
 * @param array $object Details of current post.
 *
 * @uses wpme_get_shortlink
 *
 * @return string
 */
function wpme_rest_get_shortlink( $object ) {
	return wpme_get_shortlink( $object['id'], array() );
}

// Add shortlinks to the REST API Post response.
add_action( 'rest_api_init', 'wpme_rest_register_shortlinks' );

/**
 * Set the Shortlink Gutenberg extension as available.
 */
function wpme_set_extension_available() {
	Jetpack_Gutenberg::set_extension_available( 'jetpack/shortlinks' );
}

add_action( 'init', 'wpme_set_extension_available' );

Directory Contents

Dirs: 42 × Files: 53

Name Size Perms Modified Actions
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
carousel DIR
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
comments DIR
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
- drwxr-xr-x 2023-04-04 05:35:21
Edit Download
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
- drwxr-xr-x 2023-04-04 05:35:21
Edit Download
gravatar DIR
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
likes DIR
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
markdown DIR
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
masterbar DIR
- drwxr-xr-x 2023-04-04 05:35:21
Edit Download
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
photon DIR
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
- drwxr-xr-x 2023-04-04 05:35:21
Edit Download
protect DIR
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
scan DIR
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
seo-tools DIR
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
- drwxr-xr-x 2023-04-04 05:35:21
Edit Download
- drwxr-xr-x 2023-04-04 05:35:21
Edit Download
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
site-icon DIR
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
sitemaps DIR
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
sso DIR
- drwxr-xr-x 2023-04-04 05:35:21
Edit Download
stats DIR
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
- drwxr-xr-x 2023-04-04 05:35:21
Edit Download
widgets DIR
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
wordads DIR
- drwxr-xr-x 2023-04-04 05:35:21
Edit Download
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
wpcom-tos DIR
- drwxr-xr-x 2023-04-04 05:35:20
Edit Download
644 B lrw-r--r-- 2023-04-04 05:35:21
Edit Download
564 B lrw-r--r-- 2023-04-04 05:35:21
Edit Download
7.98 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
993 B lrw-r--r-- 2023-04-04 05:35:21
Edit Download
7.47 KB lrw-r--r-- 2023-04-04 05:35:21
Edit Download
12.27 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
1.53 KB lrw-r--r-- 2023-04-04 05:35:21
Edit Download
1.37 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
2.39 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
2.44 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
501 B lrw-r--r-- 2023-04-04 05:35:20
Edit Download
3.72 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
11.81 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
8.14 KB lrw-r--r-- 2023-04-04 05:35:21
Edit Download
484 B lrw-r--r-- 2023-04-04 05:35:21
Edit Download
4.61 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
1.12 KB lrw-r--r-- 2023-04-04 05:35:21
Edit Download
21.35 KB lrw-r--r-- 2023-04-04 05:35:21
Edit Download
1007 B lrw-r--r-- 2023-04-04 05:35:21
Edit Download
1.56 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
2.93 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
46.44 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
28.17 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
3.51 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
7.94 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
12.09 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
781 B lrw-r--r-- 2023-04-04 05:35:20
Edit Download
19.84 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
596 B lrw-r--r-- 2023-04-04 05:35:20
Edit Download
533 B lrw-r--r-- 2023-04-04 05:35:20
Edit Download
28.83 KB lrw-r--r-- 2023-04-04 05:35:21
Edit Download
4.55 KB lrw-r--r-- 2023-04-04 05:35:21
Edit Download
2.12 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
1.17 KB lrw-r--r-- 2023-04-04 05:35:21
Edit Download
1.52 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
1.61 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
6.06 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
4.37 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
1.28 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
38.12 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
51.87 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
31.93 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
2.52 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
1.05 KB lrw-r--r-- 2023-04-04 05:35:21
Edit Download
1.70 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
830 B lrw-r--r-- 2023-04-04 05:35:21
Edit Download
1007 B lrw-r--r-- 2023-04-04 05:35:20
Edit Download
297 B lrw-r--r-- 2023-04-04 05:35:21
Edit Download
475 B lrw-r--r-- 2023-04-04 05:35:21
Edit Download
2.85 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download
631 B lrw-r--r-- 2023-04-04 05:35:20
Edit Download
577 B lrw-r--r-- 2023-04-04 05:35:20
Edit Download
1.91 KB lrw-r--r-- 2023-04-04 05:35:20
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).