'M12,3L2,12H5V20H19V12H22L12,3M12,8.75A2.25,2.25 0 0,1 14.25,11A2.25,2.25 0 0,1 12,13.25A2.25,2.25 0 0,1 9.75,11A2.25,2.25 0 0,1 12,8.75M12,15C13.5,15 16.5,15.75 16.5,17.25V18H7.5V17.25C7.5,15.75 10.5,15 12,15Z',
'twitter' => 'M22.46,6C21.69,6.35 20.86,6.58 20,6.69C20.88,6.16 21.56,5.32 21.88,4.31C21.05,4.81 20.13,5.16 19.16,5.36C18.37,4.5 17.26,4 16,4C13.65,4 11.73,5.92 11.73,8.29C11.73,8.63 11.77,8.96 11.84,9.27C8.28,9.09 5.11,7.38 3,4.79C2.63,5.42 2.42,6.16 2.42,6.94C2.42,8.43 3.17,9.75 4.33,10.5C3.62,10.5 2.96,10.3 2.38,10C2.38,10 2.38,10 2.38,10.03C2.38,12.11 3.86,13.85 5.82,14.24C5.46,14.34 5.08,14.39 4.69,14.39C4.42,14.39 4.15,14.36 3.89,14.31C4.43,16 6,17.26 7.89,17.29C6.43,18.45 4.58,19.13 2.56,19.13C2.22,19.13 1.88,19.11 1.54,19.07C3.44,20.29 5.7,21 8.12,21C16,21 20.33,14.46 20.33,8.79C20.33,8.6 20.33,8.42 20.32,8.23C21.16,7.63 21.88,6.87 22.46,6Z',
'facebook' => 'M17,2V2H17V6H15C14.31,6 14,6.81 14,7.5V10H14L17,10V14H14V22H10V14H7V10H10V6A4,4 0 0,1 14,2H17Z',
'youtube' => 'M10,15L15.19,12L10,9V15M21.56,7.17C21.69,7.64 21.78,8.27 21.84,9.07C21.91,9.87 21.94,10.56 21.94,11.16L22,12C22,14.19 21.84,15.8 21.56,16.83C21.31,17.73 20.73,18.31 19.83,18.56C19.36,18.69 18.5,18.78 17.18,18.84C15.88,18.91 14.69,18.94 13.59,18.94L12,19C7.81,19 5.2,18.84 4.17,18.56C3.27,18.31 2.69,17.73 2.44,16.83C2.31,16.36 2.22,15.73 2.16,14.93C2.09,14.13 2.06,13.44 2.06,12.84L2,12C2,9.81 2.16,8.2 2.44,7.17C2.69,6.27 3.27,5.69 4.17,5.44C4.64,5.31 5.5,5.22 6.82,5.16C8.12,5.09 9.31,5.06 10.41,5.06L12,5C16.19,5 18.8,5.16 19.83,5.44C20.73,5.69 21.31,6.27 21.56,7.17Z',
'instagram' => 'M7.8,2H16.2C19.4,2 22,4.6 22,7.8V16.2A5.8,5.8 0 0,1 16.2,22H7.8C4.6,22 2,19.4 2,16.2V7.8A5.8,5.8 0 0,1 7.8,2M7.6,4A3.6,3.6 0 0,0 4,7.6V16.4C4,18.39 5.61,20 7.6,20H16.4A3.6,3.6 0 0,0 20,16.4V7.6C20,5.61 18.39,4 16.4,4H7.6M17.25,5.5A1.25,1.25 0 0,1 18.5,6.75A1.25,1.25 0 0,1 17.25,8A1.25,1.25 0 0,1 16,6.75A1.25,1.25 0 0,1 17.25,5.5M12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9Z',
'linkedin' => 'M21,21H17V14.25C17,13.19 15.81,12.31 14.75,12.31C13.69,12.31 13,13.19 13,14.25V21H9V9H13V11C13.66,9.93 15.36,9.24 16.5,9.24C19,9.24 21,11.28 21,13.75V21M7,21H3V9H7V21M5,3A2,2 0 0,1 7,5A2,2 0 0,1 5,7A2,2 0 0,1 3,5A2,2 0 0,1 5,3Z',
'pinterest' => 'M9.04,21.54C10,21.83 10.97,22 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2A10,10 0 0,0 2,12C2,16.25 4.67,19.9 8.44,21.34C8.35,20.56 8.26,19.27 8.44,18.38L9.59,13.44C9.59,13.44 9.3,12.86 9.3,11.94C9.3,10.56 10.16,9.53 11.14,9.53C12,9.53 12.4,10.16 12.4,10.97C12.4,11.83 11.83,13.06 11.54,14.24C11.37,15.22 12.06,16.08 13.06,16.08C14.84,16.08 16.22,14.18 16.22,11.5C16.22,9.1 14.5,7.46 12.03,7.46C9.21,7.46 7.55,9.56 7.55,11.77C7.55,12.63 7.83,13.5 8.29,14.07C8.38,14.13 8.38,14.21 8.35,14.36L8.06,15.45C8.06,15.62 7.95,15.68 7.78,15.56C6.5,15 5.76,13.18 5.76,11.71C5.76,8.55 8,5.68 12.32,5.68C15.76,5.68 18.44,8.15 18.44,11.43C18.44,14.87 16.31,17.63 13.26,17.63C12.29,17.63 11.34,17.11 11,16.5L10.33,18.87C10.1,19.73 9.47,20.88 9.04,21.57V21.54Z',
'github' => 'M20.38,8.53C20.54,8.13 21.06,6.54 20.21,4.39C20.21,4.39 18.9,4 15.91,6C14.66,5.67 13.33,5.62 12,5.62C10.68,5.62 9.34,5.67 8.09,6C5.1,3.97 3.79,4.39 3.79,4.39C2.94,6.54 3.46,8.13 3.63,8.53C2.61,9.62 2,11 2,12.72C2,19.16 6.16,20.61 12,20.61C17.79,20.61 22,19.16 22,12.72C22,11 21.39,9.62 20.38,8.53M12,19.38C7.88,19.38 4.53,19.19 4.53,15.19C4.53,14.24 5,13.34 5.8,12.61C7.14,11.38 9.43,12.03 12,12.03C14.59,12.03 16.85,11.38 18.2,12.61C19,13.34 19.5,14.23 19.5,15.19C19.5,19.18 16.13,19.38 12,19.38M8.86,13.12C8.04,13.12 7.36,14.12 7.36,15.34C7.36,16.57 8.04,17.58 8.86,17.58C9.69,17.58 10.36,16.58 10.36,15.34C10.36,14.11 9.69,13.12 8.86,13.12M15.14,13.12C14.31,13.12 13.64,14.11 13.64,15.34C13.64,16.58 14.31,17.58 15.14,17.58C15.96,17.58 16.64,16.58 16.64,15.34C16.64,14.11 16,13.12 15.14,13.12Z',
);
/**
* Before Page Loaded
*/
/**
* Header
**/
/**
* Header Contact Info
*/
public static function headerContactInfo()
{
$header_contact_info_phone_number = ace()->getThemeMod( 'header_contact_info_phone_number' );
$header_contact_info_message_above_number = ace()->getThemeMod( 'header_contact_info_message_above_number' );
$header_contact_info_message_below_number = ace()->getThemeMod( 'header_contact_info_message_below_number' );
echo '
';
}
/**
* Nav
**/
public static function headerNavi()
{
}
/**
* Archive
**/
/**
* Blog
*/
public static function renderBlogArticles( $article_type = '' )
{
echo self::getBlogArticles( $article_type );
}
public static function getBlogArticles( $article_type = '' )
{
ob_start();
if ( in_array( $article_type, array( 'slider' ) ) ) {
if ( have_posts() ) {
$article_container_class = array( 'article-container', 'swiper-container' );
echo '';
$articles_class = array( 'articles', 'post-list', 'list-in-slider', 'swiper-wrapper' );
echo '
';
while( have_posts() ) { the_post();
do_action( ace()->getPrefixedActionHook( 'render_archive_article' ), $article_type );
}
echo '
';
echo '
';
do_action( ace()->getPrefixedActionHook( 'render_pagination' ) );
} else {
echo '' . esc_html__( 'No Articles.', Ace::TEXTDOMAIN ) . '';
echo '
' . esc_html__( 'Please try to search for the page with keywords.', Ace::TEXTDOMAIN ) . '
';
get_search_form();
}
} else {
if ( have_posts() ) {
$articles_class = array( 'articles', 'post-list', 'list-in-' . $article_type );
echo '';
while( have_posts() ) { the_post();
do_action( ace()->getPrefixedActionHook( 'render_archive_article' ), $article_type );
}
echo '
';
do_action( ace()->getPrefixedActionHook( 'render_pagination' ) );
} else {
echo '' . esc_html__( 'No Articles.', Ace::TEXTDOMAIN ) . '';
echo '
' . esc_html__( 'Please try to search for the page with keywords.', Ace::TEXTDOMAIN ) . '
';
get_search_form();
}
}
$blog_articles = ob_get_clean();
return $blog_articles;
}
/**
* Blog Article
*/
public static function renderBlogArticle( $article_type = '' )
{
echo self::getBlogArticles( $article_type );
}
public static function getBlogArticle( $article_type = '' )
{
ob_start();
self::loadTemplatePart( 'archive/article', $type );
$article = ob_get_clean();
}
/**
* Post Item Data
**/
/**
* Thumbnail
**/
public static function renderArchiveArticleThumbnail()
{
echo self::getArchiveArticleThumbnail();
}
public static function getArchiveArticleThumbnail()
{
global $post;
ob_start();
echo '';
echo '
';
//echo '
';
$thumbnailURL = esc_url( wp_get_attachment_url( get_post_thumbnail_id() ) );
$alt = $post_title = wp_strip_all_tags( get_the_title( $post->ID ) );
if ( $thumbnailURL ) {
$classes = array( 'post-list-thumbnail' );
$atts = array(
'class' => implode( ' ', $classes ),
'alt' => ( $alt ? $alt : sprintf( esc_html__( 'No Titles - %s', 'ace' ), ACE_SITE_NAME ) ),
'title' => (
$post_title !== ''
? $post_title
: sprintf(
esc_html__( 'No Titles - %s', 'ace' ),
esc_html( ACE_SITE_NAME )
)
),
);
$width = absint( ace()->getThemeMod( 'archive_page_post_thumbnail_width' ) );
$height = absint( ace()->getThemeMod( 'archive_page_post_thumbnail_height' ) );
$size = $width . 'px ' . $height . 'px';
echo get_the_post_thumbnail( $post->ID, $size, $atts );
unset( $atts );
}
else {
$classes = array( 'post-list-thumbnail', 'default' );
$default_cat_thumbnail = AceFrontendRenderingMethods::getTheDefaultThumbnailUrl( $post );
AceFrontendRenderingMethods::imgTagDefaultThumbnail(
implode( ' ', $classes ),
array(
'width' => absint( ace()->getThemeMod( 'archive_page_post_thumbnail_width' ) ) . 'px',
'height' => absint( ace()->getThemeMod( 'archive_page_post_thumbnail_height' ) ) . 'px'
),
$alt,
esc_url( $default_cat_thumbnail )
);
unset( $default_cat_thumbnail );
} unset( $thumbnailURL, $alt, $id, $class );
//echo '';
echo '
';
echo '
';
$html = ob_get_clean();
return apply_filters( ace()->getPrefixedFilterHook( 'render_post_list_item_thumbnail' ), $html, $post );
}
/**
* Author
**/
public static function renderArchiveArticleAuthor()
{
echo self::getArchiveArticleAuthor();
}
public static function getArchiveArticleAuthor()
{
global $post;
ob_start();
echo '';
echo '' . esc_html( get_the_author() ) . '';
echo '
';
$html = ob_get_clean();
return apply_filters( ace()->getPrefixedFilterHook( 'archive_article_author' ), $html );
}
/**
* Date Publish
**/
public static function renderArchiveArticleDatePublished()
{
echo self::getArchiveArticleDatePublished();
}
public static function getArchiveArticleDatePublished()
{
global $post;
ob_start();
echo '';
echo '';
echo '
';
$html = ob_get_clean();
return apply_filters( ace()->getPrefixedFilterHook( 'archive_article_date_published' ), $html );
}
/**
* Print Pagination Template for Archive Page
*
* @see self::getPagination()
**/
public static function pagination() {
echo self::getPagination();
}
/**
* Get Pagination Template for Archive Page
*
* @return string
**/
public static function getPagination( $args = array() ) {
if ( ! wp_is_mobile() ) {
global $wp_query;
$total = (
isset( $wp_query->max_num_pages )
&& $wp_query->max_num_pages > 1
? $wp_query->max_num_pages
: 1
);
$current = (
get_query_var( 'paged' )
? get_query_var( 'paged' )
: 1
);
$default_args = array(
'end_size' => 3,
'mid_size' => 3,
'prev_text' => esc_html__( '« Previous', 'ace' ),
'next_text' => esc_html__( 'Next »', 'ace' ),
);
$args = wp_parse_args( $args, $default_args );
return apply_filters( ace()->getPrefixedFilterHook( 'render_pagination' ), sprintf( '', absint( $current ), absint( $total ), paginate_links( $args ) ), 'pc' );
} else {
$prev = get_previous_posts_link( esc_html__( 'To Prev', 'ace' ) );
$next = get_next_posts_link( esc_html__( 'To Next', 'ace' ) );
if ( ! $prev && ! $next ) {
return apply_filters(
ace()->getPrefixedFilterHook( 'render_pagination' ),
'',
'mobile'
);
} else {
if ( $prev ) {
$prev = '' . $prev . '
';
}
if ( $next ) {
$next = '' . $next . '
' ;
}
}
return apply_filters(
ace()->getPrefixedFilterHook( 'render_pagination' ),
'',
'mobile'
);
}
}
/**
* Singular
**/
/**
* Render Thumbnail HTML
**/
public static function singularThumbnail()
{
echo self::getSingularThumbnail();
}
/**
* Get Thumbnail HTML
**/
public static function getSingularThumbnail()
{
global $post;
$thumbnailURL = esc_url( wp_get_attachment_url( get_post_thumbnail_id() ) );
if ( false === $thumbnailURL ) {
return '';
}
$classes = array( 'singular-thumbnail' );
$post_title = wp_strip_all_tags( get_the_title( $post->ID ) );
$alt = $post_title = (
'' !== $post_title
? $post_title
: sprintf( esc_html__( 'No Titles - %s', 'ace' ), esc_html( ACE_SITE_NAME ) )
);
$atts = array(
'class' => implode( ' ', $classes ),
'alt' => $alt,
'title' => $post_title,
);
$width = 100;//absint( ace()->getThemeMod( 'archive_page_post_thumbnail_width' ) );
$height = 100;//absint( ace()->getThemeMod( 'archive_page_post_thumbnail_height' ) );
$size = $width . 'px ' . $height . 'px';
ob_start();
echo '';
$html = ob_get_clean();
return apply_filters( ace()->getPrefixedFilterHook( 'render_singular_thumbnail' ), $html, $post );
}
/**
* Excerpt
*
* @param string $post_content
* @param int $excerpt_length
*
* @see self::get_the_excerpt( $post_content, $excerpt_length )
**/
public static function theExcerpt( $post = null ) {
echo self::getTheExcerpt( $post );
}
/**
* Excerpt
*
* @param string $post_content
* @param int $excerpt_length
*
* @return string
**/
public static function getTheExcerpt( $post = null ) {
if ( empty( $post ) ) {
global $post;
}
$post = get_post( $post );
if ( ! $post instanceof WP_Post ) return '';
$post_content = $post->post_content;
$the_excerpt = preg_replace( '/\[[^\]]+]/i', '', $post_content );
$the_excerpt = wp_strip_all_tags( $the_excerpt );
$the_excerpt = str_replace( array( "\n", "\r", ' ', ' ', ' ', '"', " " ), '', $the_excerpt );
$the_excerpt = mb_ereg_replace( "/[^a-zA-Z0-9]\s[^a-zA-Z0-9]/i", '', $the_excerpt );
return mb_substr( $the_excerpt, 0, 200 );
}
/**
* Excerpt
*
* @param string $post_content
* @param int $excerpt_length
*
* @see self::get_the_excerpt( $post_content, $excerpt_length )
**/
public static function singularPostTax( $post = null ) {
echo self::getSingularPostTax( $post );
}
/**
* Excerpt
*
* @param string $post_content
* @param int $excerpt_length
*
* @return string
**/
public static function getSingularPostTax( $post = null ) {
if ( empty( $post ) ) {
global $post;
}
$post = get_post( $post );
if ( ! $post instanceof WP_Post ) return '';
ob_start();
echo '';
self::loadTemplatePart( 'singular/tax-' . $post->post_type );
echo '
';
$html = ob_get_clean();
return apply_filters( ace()->getPrefixedFilterHook( 'render_singular_post_tax' ), $html, 'singular' );
}
/**
* Footer
**/
public static function singularFooterPrevNext()
{
echo self::getSingularFooterPrevNext();
}
public static function getSingularFooterPrevNext()
{
global $post;
$post_type = get_post_type( $post );
if ( 'post' !== $post_type ) {
return '';
}
ob_start();
self::loadTemplatePart( 'singular/prevnext' );
$html = ob_get_clean();
return apply_filters( ace()->getPrefixedFilterHook( 'render_singular_footer_prev_next' ), $html, 'singular' );
}
/**
* Widget
*/
/**
* Author Card
**/
public static function renderAuthorCard( $user_id, $query_posts = false, $title_element = 'div', $show_post_count = false, $card_style = 'standard' )
{
$author_desc = get_the_author_meta( 'user_description', $user_id );
$sns_accounts = get_user_meta( absint( $user_id ), '_ace_sns_account_urls', true );
$sns_accounts = json_decode( $sns_accounts, true );
$user_url = get_author_posts_url( $user_id );
if ( function_exists( 'bp_core_get_user_domain' ) ) {
$user_url = bp_core_get_user_domain( $user_id );
}
$display_name = get_the_author_meta( 'display_name', $user_id );
$post_author_atts = get_user_meta( absint( $user_id ), '_ace_post_author_atts', true );
$post_author_atts = json_decode( $post_author_atts, true );
if ( null === $post_author_atts ) $post_author_atts = array();
$post_author_atts = wp_parse_args( $post_author_atts, array(
'position' => __( 'Post Author', Ace::TEXTDOMAIN ),
) );
if ( ! isset( $post_author_atts['position'] ) || '' === $post_author_atts['position'] ) {
$post_author_atts['position'] = __( 'Post Author', Ace::TEXTDOMAIN );
}
$position = $post_author_atts['position'];
$posts_total = count( get_posts( array(
'post_author' => $user_id,
'post_type' => 'post',
'posts_per_page' => -1
) ) );
// Related Posts
$has_related_posts = false;
if ( false !== $query_posts ) {
$posts = get_posts( $query_posts );
if ( 0 < count( $posts ) ) {
$has_related_posts = true;
}
}
// Belongs Data
$has_belongs_data = false;
// Avatar
$avatar_url = get_avatar_url( $user_id, array(
'size' => 100,
'default' => 'mystery',
) );
$avatar_img = AceFrontendRenderingMethods::getImageTagWithNoScript( $avatar_url, $type = 'img', $atts = array(
'class' => 'author-card-avatar-image',
'alt' => sprintf( 'The Post Author: %1$s', $display_name ),
'width' => 100,
'height' => 100,
) );
$card_classes = array( 'author-card', 'style-' . $card_style );
$card_inner_classes = array( 'autor-card-inner', 'swiper-wrapper' );
if ( $has_related_posts ) {
array_push( $card_classes, 'swiper-container' );
array_push( $card_classes, 'swiper-container-flip-y' );
//array_push( $card_inner_classes, 'swiper-wrapper' );
}
printf( '', implode( ' ', $card_classes ) );
printf( '
', implode( ' ', $card_inner_classes ) );
echo '
';
echo '';
echo '
';
echo '
';
echo $avatar_img;
echo '
';
echo '
';
echo '
';
echo '
';
if ( $has_related_posts ) {
echo '
';
}
if ( $has_belongs_data ) {
echo '
';
echo '
';
}
echo '
';
if ( $has_related_posts ) {
echo '
';
}
echo '
';
}
/**
* Footer
**/
/**
* Footer Description
**/
public static function footerNameDescription()
{
echo self::getFooterNameDescription();
}
/**
* Get Footer Description
**/
public static function getFooterNameDescription()
{
ob_start();
echo '';
$html = ob_get_clean();
return apply_filters( ace()->getPrefixedFilterHook( 'render_footer_description' ), $html );
}
/**
* Footer License
**/
public static function footerLicense()
{
echo self::getFooterLicense();
}
/**
* Get Footer Description
**/
public static function getFooterLicense()
{
$license_type = AceDataMethods::getFooterLicenseType();
if ( '' === $license_type
&& ! is_customize_preview()
) {
return '';
}
ob_start();
echo '';
$html = ob_get_clean();
return apply_filters( ace()->getPrefixedFilterHook( 'render_footer_license' ), $html );
}
/**
* Footer Theme
**/
public static function footerThemeURI()
{
echo self::getFooterThemeURI();
}
/**
* Get Footer Description
**/
public static function getFooterThemeURI()
{
ob_start();
echo '';
$html = ob_get_clean();
return apply_filters( ace()->getPrefixedFilterHook( 'render_footer_theme_uri' ), $html );
}
/**
* Footer Theme
**/
public static function footerCustomSiteInfo()
{
echo self::getFooterCustomSiteInfo();
}
/**
* Get Footer Description
**/
public static function getFooterCustomSiteInfo()
{
$custom_site_info = html_entity_decode( ace()->getThemeMod( 'footer_custom_site_info' ) );
if ( ( ! is_string( $custom_site_info ) || '' === $custom_site_info ) && ! is_customize_preview() ) return '';
ob_start();
echo '';
$html = ob_get_clean();
return apply_filters( ace()->getPrefixedFilterHook( 'render_footer_custom_site_info' ), $html );
}
// Buttons
/**
* Footer Button Set
**/
public static function footerButtonSet()
{
echo self::getFooterButtonSet();
}
public static function getFooterButtonSet()
{
$icon_set = apply_filters( ace()->getPrefixedFilterHook( 'footer_menu_icons' ), array(
'search' => array(
'xlink' => esc_attr( '#iconSearch' ),
'text' => esc_html__( 'Search', Ace::TEXTDOMAIN ),
),
/*'left-menu' => array(
'xlink' => esc_attr( '#iconList' ),
'text' => esc_html__( 'Menu', Ace::TEXTDOMAIN ),
),*/
'go-to-home' => array(
'xlink' => esc_attr( '#iconHome' ),
'text' => esc_html__( 'Home', Ace::TEXTDOMAIN ),
),
'scroll-to-top' => array(
'xlink' => esc_attr( '#iconChevronTop' ),
'text' => esc_html__( 'Top', Ace::TEXTDOMAIN ),
),
'right-menu' => array(
'xlink' => esc_attr( '#iconMenuDots' ),
'text' => esc_html__( 'Widgets', Ace::TEXTDOMAIN ),
),
) );
if ( ! is_array( $icon_set ) || 0 >= count( $icon_set ) ) {
return;
}
ob_start();
echo '';
$html = ob_get_clean();
return apply_filters( ace()->getPrefixedFilterHook( 'render_footer_buttons' ), $html );
}
/**
*
**/
public static function buttonWithIcon( $action, $xlink, $text, $atts = array() )
{
echo self::getButtonWithIcon( $action, $xlink, $text, $atts );
}
public static function getButtonWithIcon( $action, $xlink, $text, $atts = array() )
{
ob_start();
printf( '' );
$html = ob_get_clean();
return apply_filters( ace()->getPrefixedFilterHook( 'render_button_with_icon' ), $html, $action, $xlink, $text );
}
/**
* Mods
**/
// Content
/**
* Hooked in Filter "the_content"
* @param string $the_content
* @return string $the_content
**/
public static function contentFilter( $content ) {
// Insert before first H2 tag
if ( ! function_exists( 'bp_is_blog_page' ) || bp_is_blog_page() ) {
$content = self::modBefore1stH2( $content );
}
// IMG Tags
$content = preg_replace_callback(
'/
]+\/>/ims',
array( 'AceFrontendRenderingMethods', 'filterImagesWithNoscript' ),
$content
);
$content = preg_replace(
'/(\