Astra_Addon_Theme_Builder::get_template_preview_link( $post, $post_preview_link, $layout_value, $template_type )
Gets the specific preview link for the template.
Description
Return
(string) Preview link.
Source
File: addons/advanced-hooks/classes/class-astra-addon-theme-builder.php
public function get_template_preview_link( $post, $post_preview_link, $layout_value, $template_type ) { if ( 'template' === $layout_value ) { /** * Get the display conditions. * Based on the display conditions get the appropriate preview link. * Return the preview link. */ $display_conditions = get_post_meta( $post->ID, 'ast-advanced-hook-location', true ); if ( 'single' === $template_type ) { if ( isset( $display_conditions['rule'] ) ) { $display_rule = $display_conditions['rule']; if ( isset( $display_rule ) && isset( $display_rule[0] ) ) { $ruleParts = explode( '|', $display_rule[0] ); if ( isset( $ruleParts ) && $ruleParts[0] ) { $pageValue = $ruleParts[0]; if ( isset( $pageValue ) ) { if ( 'basic-global' === $pageValue || 'basic-singulars' === $pageValue ) { $pageValue = 'post'; } elseif ( 'specifics' === $pageValue ) { $specific_post = $display_conditions['specific']; if ( isset( $specific_post ) && isset( $specific_post[0] ) ) { $specific_post = explode( '-', $specific_post[0] ); if ( isset( $specific_post[1] ) ) { $specific_post_id = (int) $specific_post[1]; $args = array( 'p' => $specific_post_id, ); $specific_post = get_posts( $args ); if ( isset( $specific_post ) && isset( $specific_post[0] ) ) { $post_preview_link = get_preview_post_link( $specific_post[0]->ID ); } } } } else { $args = array( 'posts_per_page' => 1, 'orderby' => 'rand', 'post_type' => $pageValue, ); $random_post = get_posts( $args ); if ( isset( $random_post ) && isset( $random_post[0] ) ) { $post_preview_link = get_preview_post_link( $random_post[0]->ID ); } } } } } } } elseif ( 'archive' === $template_type ) { $display_rule = $display_conditions['rule']; if ( isset( $display_rule ) && isset( $display_rule[0] ) ) { $display_rule = $display_rule[0]; if ( 'basic-global' === $display_rule || 'basic-archives' === $display_rule || 'special-blog' === $display_rule ) { // URL for the entire site $post_preview_link = home_url(); } elseif ( 'special-404' === $display_rule ) { // URL for the 404 Page $post_preview_link = home_url( '/hshsh' ); } elseif ( 'special-search' === $display_rule ) { // URL for the Search Page $post_preview_link = home_url( '/?s=' ); } elseif ( 'special-front' === $display_rule ) { // URL for the Front Page $post_preview_link = home_url(); } elseif ( 'special-date' === $display_rule ) { // URL for the Date Archive $year = date( 'Y' ); $month = date( 'm' ); if ( isset( $year ) && isset( $month ) ) { $post_preview_link = get_month_link( $year, $month ); } else { $post_preview_link = get_preview_post_link( $post ); } } elseif ( 'special-author' === $display_rule ) { // URL for the Author Archive $author_id = 1; $author = get_userdata( $author_id ); if ( isset( $author ) ) { $author_slug = $author->user_nicename; $post_preview_link = home_url( '/author/' . $author_slug ); } else { $post_preview_link = get_preview_post_link( $post ); } } elseif ( 'post|all|archive' === $display_rule ) { // URL for All Posts Archive $post_preview_link = get_post_type_archive_link( 'post' ); } elseif ( 'post|all|taxarchive|category' === $display_rule ) { // URL for All Categories Archive $categories = get_categories( array( 'number' => 1 ) ); if ( ! empty( $categories ) ) { $category_slug = $categories[0]->slug; $post_preview_link = get_term_link( $category_slug, 'category' ); } } elseif ( 'post|all|taxarchive|post_tag' === $display_rule ) { // URL for All Tags Archive $tags = get_tags( array( 'number' => 1 ) ); if ( ! empty( $tags ) ) { $tag_slug = $tags[0]->slug; $post_preview_link = get_term_link( $tag_slug, 'post_tag' ); } } } } } return $post_preview_link; }
Expand full source code Collapse full source code View on Trac
Changelog
Version | Description |
---|---|
4.5.0 | Introduced. |