File "Post.php"
Full path: C:/Inetpub/vhosts/drshti.com/httpdocs/wp-content/plugins/depicter/vendor/averta/wordpress/src/Utility/Post.php
File
size: 5.04 B (5.04 KB bytes)
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor &nnbsp; Back
<?php
namespace Averta\WordPress\Utility;
use Averta\Core\Utility\Str;
class Post
{
/**
* Generates an excerpt and trims it by characters from the content outside of loop
*
* @param int $postId ID of the post.
* @param int $maxCharLength The maximum number of words in a post excerpt.
* @param array $excludeStripShortcodeTags
* @param bool $skipMoreTag
*
* @return string
*/
public static function getExcerptTrimmedByChars( $postId = null, $maxCharLength = null, $excludeStripShortcodeTags = null, $skipMoreTag = false ) {
$post = get_post( $postId );
if( ! isset( $post ) ) return '';
// If post password required and it doesn't match the cookie.
if ( post_password_required( $post ) ){
return __( 'There is no excerpt because this is a protected post.' );
}
$excerptMore = apply_filters( 'excerpt_more', " ..." );
$excerptMore = apply_filters( 'averta/wordpress/excerpt/trim/chars/more', $excerptMore );
if ( $post->post_excerpt ){
$excerpt = apply_filters( 'get_the_excerpt', $post->post_excerpt );
} else {
$content = apply_filters( 'the_content', $post->post_content );
// Remove Gutenberg Blocks
$content = preg_replace('/<!--(.|\s)*?-->/', '', $content);
// check for <!--more--> tag
if ( ! $skipMoreTag && preg_match( '/<!--more(.*?)?-->/', $content, $matches ) ) {
$content = explode( $matches[0], $content, 2 );
if ( ! empty( $matches[1] ) ){
$moreLinkText = strip_tags( wp_kses_no_null( trim( $matches[1] ) ) );
$excerptMore = ! empty( $moreLinkText ) ? $moreLinkText : $excerptMore;
}
$content = $content[0];
}
// Clean post content
$excerpt = strip_tags( Sanitize::stripShortcodes( $content, $excludeStripShortcodeTags ) );
}
$excerpt = !empty( $maxCharLength ) ? Str::trimByChars( $excerpt, $maxCharLength, $excerptMore ) : $excerpt;
return apply_filters( 'averta/wordpress/excerpt/trim/chars/result', $excerpt, $post, $maxCharLength, $excerptMore );
}
/**
* Generates an excerpt and trims it by words from the content outside of loop
*
* @param int $postId ID of the post.
* @param int $excerptLength The maximum number of words in a post excerpt.
* @param array $excludeStripShortcodeTags
* @param bool $skipMoreTag
*
* @return string
*/
public static function getExcerptTrimmedByWords( $postId = null, $excerptLength = null, $excludeStripShortcodeTags = null, $skipMoreTag = false ) {
$post = get_post( $postId );
if( ! isset( $post ) ) return '';
// If post password required and it doesn't match the cookie.
if ( post_password_required( $post ) )
return __( 'There is no excerpt because this is a protected post.' );
if ( $post->post_excerpt ) {
$result = apply_filters( 'get_the_excerpt', $post->post_excerpt );
} else {
$content = $post->post_content;
$content = apply_filters( 'the_content', $content );
// If excerpt length is defined use it, otherwise use default excerpt length
$excerptLength = empty( $excerptLength ) ? apply_filters( 'excerpt_length', 55 ) : $excerptLength;
$excerptMore = apply_filters( 'excerpt_more', " ..." );
// check for <!--more--> tag
if ( ! $skipMoreTag && preg_match( '/<!--more(.*?)?-->/', $content, $matches ) ) {
$content = explode( $matches[0], $content, 2 );
if ( ! empty( $matches[1] ) ){
$moreLinkText = strip_tags( wp_kses_no_null( trim( $matches[1] ) ) );
$excerptMore = ! empty( $moreLinkText ) ? $moreLinkText : $excerptMore;
}
return $content[0] . $excerptMore;
}
// Clean post content
$excerpt = strip_tags( Sanitize::stripShortcodes( $content, $excludeStripShortcodeTags ) );
$result = wp_trim_words( $excerpt, $excerptLength, $excerptMore );
}
return apply_filters( 'averta/wordpress/excerpt/trim/words/result', $result );
}
/**
* Retrieves a post meta field for the given post ID.
*
* @param int $postId ID of the object metadata is for.
* @param string $metaKey Metadata key. If not specified, retrieve all metadata for the specified object.
* @param string $default Default metadata value for the specified meta key
*
* @return mixed|string
*/
public static function getMeta( $postId, $metaKey = '', $default = '' ){
$post = get_post( $postId );
if( empty( $post ) || empty( $post->ID ) )
return $default;
$metaValue = get_metadata( 'post', $post->ID, $metaKey, true );
return '' === $metaValue ? $default : $metaValue;
}
}