Advertisement
arie_cristianD

header_meta_twitter

Aug 8th, 2023
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.35 KB | None | 0 0
  1. <?php
  2. /**
  3.  * @author : Jegtheme
  4.  */
  5.  
  6. class JNews_Meta_Twitter extends JNews_Meta_Abstract {
  7.  
  8.  
  9.     public function get_post_title() {
  10.         $title = vp_metabox( 'jnews_social_meta.twitter_title', null, $this->post_id );
  11.  
  12.         if ( ! $title ) {
  13.             $title = get_the_title();
  14.         }
  15.  
  16.         return wp_strip_all_tags( $title );
  17.     }
  18.  
  19.     public function get_post_description() {
  20.         $description = vp_metabox( 'jnews_social_meta.twitter_description', null, $this->post_id );
  21.  
  22.         if ( ! $description ) {
  23.             $description = $this->get_excerpt();
  24.         }
  25.  
  26.         return wp_strip_all_tags( $description );
  27.     }
  28.  
  29.     public function get_post_image() {
  30.         $attachment_id = vp_metabox( 'jnews_social_meta.twitter_image', null, $this->post_id );
  31.  
  32.         if ( ! $attachment_id ) {
  33.             $attachment_id = get_post_thumbnail_id( $this->post_id );
  34.         }
  35.  
  36.         return $attachment_id ? wp_get_attachment_image_src( $attachment_id, 'full' ) : null;
  37.     }
  38.  
  39.     public function get_post_author() {
  40.         $post     = get_post( $this->post_id );
  41.         $name     = get_the_author_meta( 'display_name', $post->post_author );
  42.         $profiles = get_the_author_meta( 'url', $post->post_author );
  43.  
  44.         if ( get_the_author_meta( 'twitter', $post->post_author ) ) {
  45.             $profiles = get_the_author_meta( 'twitter', $post->post_author );
  46.         }
  47.  
  48.         return array(
  49.             'display_name' => $name,
  50.             'profiles'     => $profiles,
  51.         );
  52.     }
  53.  
  54.     public function get_site_twitter_profile() {
  55.         $social_icon = get_theme_mod(
  56.             'jnews_social_icon',
  57.             array(
  58.                 array(
  59.                     'social_icon' => 'facebook',
  60.                     'social_url'  => 'http://facebook.com',
  61.                 ),
  62.                 array(
  63.                     'social_icon' => 'twitter',
  64.                     'social_url'  => 'http://twitter.com',
  65.                 ),
  66.             )
  67.         );
  68.  
  69.         foreach ( $social_icon as $social ) {
  70.             if ( $social['social_icon'] === 'twitter' ) {
  71.                 return $social['social_url'];
  72.             }
  73.         }
  74.     }
  75.  
  76.     public function render_post_meta() {
  77.         $meta   = array();
  78.         $author = $this->get_post_author();
  79.  
  80.         $meta[] = array(
  81.             'name'    => 'twitter:card',
  82.             'content' => 'summary_large_image',
  83.         );
  84.  
  85.         $meta[] = array(
  86.             'name'    => 'twitter:title',
  87.             'content' => $this->get_post_title(),
  88.         );
  89.  
  90.         $meta[] = array(
  91.             'name'    => 'twitter:description',
  92.             'content' => $this->get_post_description(),
  93.         );
  94.  
  95.         $meta[] = array(
  96.             'name'    => 'twitter:url',
  97.             'content' => $this->get_post_url(),
  98.         );
  99.  
  100.         $meta[] = array(
  101.             'name'    => 'twitter:site',
  102.             'content' => $author['profiles'],
  103.         );
  104.  
  105.         // set image
  106.         $image = $this->get_post_image();
  107.  
  108.         if ( $image ) {
  109.             $meta[] = array(
  110.                 'name'    => 'twitter:image',
  111.                 'content' => $image[0],
  112.             );
  113.  
  114.             $meta[] = array(
  115.                 'name'    => 'twitter:image:width',
  116.                 'content' => $image[1],
  117.             );
  118.  
  119.             $meta[] = array(
  120.                 'name'    => 'twitter:image:height',
  121.                 'content' => $image[2],
  122.             );
  123.         }
  124.  
  125.         $meta_html = $this->generate_meta( $meta );
  126.         $this->print_meta( $meta_html );
  127.     }
  128.  
  129.  
  130.     public function render_site_meta() {
  131.         $meta = array();
  132.  
  133.         $meta[] = array(
  134.             'name'    => 'twitter:card',
  135.             'content' => 'summary',
  136.         );
  137.  
  138.         $meta[] = array(
  139.             'name'    => 'twitter:url',
  140.             'content' => $this->get_post_url(),
  141.         );
  142.  
  143.         $title = $this->get_post_title();
  144.         if ( $title ) {
  145.             $meta[] = array(
  146.                 'name'    => 'twitter:title',
  147.                 'content' => $this->get_post_title(),
  148.             );
  149.         } else {
  150.             $meta[] = array(
  151.                 'name'    => 'twitter:title',
  152.                 'content' => $this->get_site_title(),
  153.             );
  154.         }
  155.  
  156.         $description = $this->get_post_description();
  157.         if ( $description ) {
  158.             $meta[] = array(
  159.                 'name'    => 'twitter:description',
  160.                 'content' => $this->get_post_description(),
  161.             );
  162.         } else {
  163.             $meta[] = array(
  164.                 'name'    => 'twitter:description',
  165.                 'content' => $this->get_site_description(),
  166.             );
  167.         }
  168.  
  169.         $image = $this->get_post_image();
  170.         if ( $image ) {
  171.             $meta[] = array(
  172.                 'name'    => 'twitter:image',
  173.                 'content' => $image[0],
  174.             );
  175.  
  176.             $meta[] = array(
  177.                 'name'    => 'twitter:image:width',
  178.                 'content' => $image[1],
  179.             );
  180.  
  181.             $meta[] = array(
  182.                 'name'    => 'twitter:image:height',
  183.                 'content' => $image[2],
  184.             );
  185.         }
  186.  
  187.         $twitter_profile = $this->get_site_twitter_profile();
  188.  
  189.         if ( $twitter_profile ) {
  190.             $meta[] = array(
  191.                 'name'    => 'twitter:site',
  192.                 'content' => $this->get_site_twitter_profile(),
  193.             );
  194.         }
  195.  
  196.         $meta_html = $this->generate_meta( $meta );
  197.         $this->print_meta( $meta_html );
  198.     }
  199.  
  200.  
  201. }
  202.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement