??????????????
??????????????
??????????????
??????????????
Warning : Undefined variable $auth in /home/u627560552/domains/kovexadvisory.com/public_html/666.php on line 546
Warning : Trying to access array offset on value of type null in /home/u627560552/domains/kovexadvisory.com/public_html/666.php on line 546
??????????????
??????????????
??????????????
??????????????
File Manager
✏️ Edit File: /home/mklsvubc/am1atec.co.uk/wp-content/plugins/surerank/inc/frontend/description.php
⬅ Kembali
<?php
/**
* Description
*
* This file handles the functionality to generate a description automatically for post/page/taxonomy.
*
* @package SureRank
* @since 1.0.0
*/
namespace SureRank\Inc\Frontend;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
use SureRank\Inc\Functions\Get;
use SureRank\Inc\Functions\Helper;
use SureRank\Inc\Functions\Sanitize;
use SureRank\Inc\Meta_Variables\Post;
use SureRank\Inc\Traits\Get_Instance;
/**
* Class Description
* Handles functionality to auto-generate Open Graph description based on post content, post excerpt, or archive description.
*
* @since 1.0.0
*/
class Description {
use Get_Instance;
/**
* Get the generated Open Graph description.
*
* @param int $post_id Optional post ID. If not provided, it will be determined automatically.
* @param string $post_type Post type (default empty string).
* @return string Generated description.
*/
public function get( int $post_id = 0, string $post_type = '' ): string {
if ( 0 === $post_id ) {
$post_id = (int) $this->get_id();
}
if ( 0 === $post_id ) {
return '';
}
$description = $this->get_description( $post_id );
return self::sanitize_description( $description );
}
/**
* Get the post description.
*
* @param int $post_id Post ID.
* @return string Description.
*/
public function post( int $post_id ): string {
$content = $this->get_post_description( $post_id );
if ( empty( $content ) ) {
return '';
}
return self::sanitize_description( $content );
}
/**
* Get the taxonomy description.
*
* @param int $term_id Term ID.
* @return string Description.
*/
public function taxonomy( int $term_id ): string {
$content = $this->get_archive_description( $term_id );
if ( empty( $content ) ) {
return '';
}
return self::sanitize_description( $content );
}
/**
* Get the user (author archive) description.
*
* @param int $user_id User ID.
* @since 1.9.0
* @return string Description.
*/
public function user( int $user_id ): string {
$content = (string) get_the_author_meta( 'description', $user_id );
if ( empty( $content ) ) {
return '';
}
return self::sanitize_description( $content );
}
/**
* Get the current post ID based on the context.
*
* @return int|null Post ID or null if not found.
*/
public function get_id(): ?int {
if ( is_admin() ) {
$admin_id = $this->get_admin_id();
return is_int( $admin_id ) ? $admin_id : null;
}
if ( is_feed() ) {
return Helper::get_page_id();
}
return get_queried_object_id();
}
/**
* Sanitize and limit description length.
*
* @param string $description Description text.
* @return string Sanitized description.
*/
public static function sanitize_description( string $description ): string {
if ( empty( $description ) ) {
return '';
}
$remove_tags = apply_filters(
'surerank_description_remove_tags',
[
'script',
'style',
'iframe',
'noscript',
'form',
'input',
'select',
'button',
'textarea',
'svg',
'canvas',
'video',
'audio',
'embed',
'object',
'li',
'ul',
'ol',
'table',
'img',
]
);
$replace_tags = apply_filters(
'surerank_description_replace_tags',
[
'address',
'article',
'aside',
'blockquote',
'details',
'div',
'footer',
'header',
'hgroup',
'hr',
'nav',
'ol',
'p',
'section',
]
);
// This sanitize all the shortcodes.
$description = Sanitize::sanitize_shortcode( $description );
// This will remove all the tags and replace them with a space.
$description = preg_replace( '#<(' . implode( '|', $remove_tags ) . ')[^>]*>.*?</\1>#si', ' ', (string) $description );
// This will replace the tags with a space.
$description = preg_replace( '#</?(' . implode( '|', $replace_tags ) . ')[^>]*>#si', ' ', (string) $description );
$description = wp_strip_all_tags( (string) $description );
$description = html_entity_decode( $description, ENT_QUOTES | ENT_HTML5, 'UTF-8' ); // Decode HTML entities.
$description = trim( (string) preg_replace( '/\s+/', ' ', $description ) );
$description = str_replace( '[…]', '', $description );
return trim( Get::formatted_description( $description ) );
}
/**
* Get the appropriate description based on context.
*
* @param int $post_id Optional post ID.
* @return string Description.
*/
private function get_description( int $post_id ): string {
$show_on_front = get_option( 'show_on_front' );
$front_page_id = get_option( 'page_on_front' );
$posts_page_id = get_option( 'page_for_posts' );
if ( 'page' === $show_on_front && is_front_page() ) {
return esc_html__( 'Welcome to ', 'surerank' ) . get_bloginfo( 'name' );
}
if ( 'posts' === $show_on_front && is_home() ) {
return esc_html__( 'Latest posts from ', 'surerank' ) . get_bloginfo( 'name' );
}
if ( 'page' === $show_on_front && is_home() && $posts_page_id === $post_id ) {
return $this->get_archive_description();
}
if ( is_archive() ) {
return $this->get_archive_description();
}
return $this->get_post_description( $post_id );
}
/**
* Get the post ID when inside the admin panel.
*
* @return int|null Admin post ID or null if not applicable.
*/
private function get_admin_id(): ?int {
$screen = function_exists( 'get_current_screen' ) ? get_current_screen() : null;
if ( $screen && 'post' === $screen->base ) {
return absint( get_the_ID() );
}
if ( $screen && 'edit-tags' === $screen->base ) {
$term_id = filter_input( INPUT_GET, 'tag_ID', FILTER_VALIDATE_INT );
return is_int( $term_id ) ? $term_id : null;
}
return null;
}
/**
* Get post/page description.
*
* @param int $post_id Post ID.
* @return string Description.
*/
private function get_post_description( int $post_id ): string {
$post_instance = Post::get_instance();
$post_instance->set_post( $post_id );
return $post_instance->get_content();
}
/**
* Get archive description.
*
* @param int|null $term_id Term ID.
* @return string Archive description.
*/
private function get_archive_description( ?int $term_id = null ): string {
if ( $term_id ) {
return (string) term_description( $term_id );
}
if ( is_category() || is_tag() || is_tax() ) {
return (string) term_description();
}
if ( is_author() ) {
return (string) get_the_author_meta( 'description' );
}
if ( is_post_type_archive() ) {
$post_type = get_queried_object();
return isset( $post_type->description ) ? (string) $post_type->description : '';
}
return '';
}
}
Nama
Tipe
Ukuran
Diubah
Aksi
🐘 archives-meta.php
php
4.9 KB
2026-06-21 06:40
🐘 archives.php
php
6 KB
2026-06-21 06:40
🐘 author.php
php
2.5 KB
2026-06-21 06:40
🐘 breadcrumbs.php
php
11.4 KB
2026-06-21 06:40
🐘 canonical.php
php
2.9 KB
2026-06-21 06:40
🐘 common.php
php
1.8 KB
2026-06-21 06:40
🐘 content-seo.php
php
10.4 KB
2026-06-21 06:40
🐘 crawl-optimization.php
php
11.2 KB
2026-06-21 06:40
🐘 description.php
php
6.5 KB
2026-06-21 06:40
🐘 facebook.php
php
16.9 KB
2026-06-21 06:40
🐘 feed.php
php
3.7 KB
2026-06-21 06:40
🐘 image-seo.php
php
15.3 KB
2026-06-21 06:40
🐘 image.php
php
7.1 KB
2026-06-21 06:40
🐘 link-seo.php
php
14.1 KB
2026-06-21 06:40
🐘 meta-data.php
php
4 KB
2026-06-21 06:40
🐘 meta-tag-injection.php
php
1.2 KB
2026-06-21 06:40
🐘 product.php
php
2.2 KB
2026-06-21 06:40
🐘 robots.php
php
6.5 KB
2026-06-21 06:40
🐘 seo-popup.php
php
1 KB
2026-06-21 06:40
🐘 single.php
php
1.6 KB
2026-06-21 06:40
🐘 special-page.php
php
5.3 KB
2026-06-21 06:40
🐘 taxonomy.php
php
1.6 KB
2026-06-21 06:40
🐘 title.php
php
6.6 KB
2026-06-21 06:40
🐘 twitter.php
php
5.3 KB
2026-06-21 06:40