' . PHP_EOL,
esc_url( $image )
);
printf(
'' . PHP_EOL,
esc_attr( $width )
);
printf(
'' . PHP_EOL,
esc_attr( $height )
);
/**
* Hide twitter meta tags.
*
* @since 2.0.12
*
* @param bool $hide_twitter_meta Set true to hide poster meta.
*/
$hide_twitter_meta = apply_filters( 'sharing_image_hide_twitter_meta', false );
if ( $hide_twitter_meta ) {
return;
}
print(
'' . PHP_EOL
);
printf(
'' . PHP_EOL,
esc_url( $image )
);
}
/**
* Public method to get Sharing Image poster.
*
* @param int $object_id Optional. Post ID or Taxonomy term ID.
* @param string $object_type Optional. Requested meta type, can be singular or taxonomy.
* Default is determined by the type of the template in which it is called.
* @return string|null Url to poster.
*/
public static function get_poster( $object_id = null, $object_type = null ) {
$poster = self::get_poster_src( $object_id, $object_type );
if ( ! isset( $poster[0] ) ) {
return null;
}
return $poster[0];
}
/**
* Public method to get Sharing Image poster url, width and height.
*
* @param int $object_id Optional. Post ID or Taxonomy term ID.
* @param string $object_type Optional. Requested meta type, can be singular or taxonomy.
* Default is determined by the type of the template in which it is called.
* @return array|false Poster image, width and height data or false if undefined.
*/
public static function get_poster_src( $object_id = null, $object_type = null ) {
$poster = self::get_widget_poster_src( $object_id, $object_type );
if ( false === $poster ) {
$poster = Config::get_default_poster_src();
}
/**
* Filters default template image data.
*
* @param array|false $image List of image data, or boolean false if no image is available.
* @param int $object_id Post ID or Taxonomy term ID.
*/
return apply_filters( 'sharing_image_poster_src', $poster, $object_id );
}
/**
* Get post or term meta Sharing Image poster data.
*
* @param int $object_id Optional. Post ID or Taxonomy term ID.
* @param string $object_type Optional. Requested meta type, can be singular or taxonomy.
* Default is determined by the type of the template in which it is called.
* @return array|false Widget poster image, width and height data or false if undefined.
*/
public static function get_widget_poster_src( $object_id = null, $object_type = null ) {
$meta = array();
if ( 'singular' !== $object_type && 'taxonomy' !== $object_type ) {
$object_type = null;
}
if ( is_null( $object_type ) && is_singular() ) {
$object_type = 'singular';
}
if ( is_null( $object_type ) && ( is_category() || is_tag() || is_tax() ) ) {
$object_type = 'taxonomy';
}
if ( 'singular' === $object_type ) {
$meta = self::get_singular_poster_meta( $object_id );
}
if ( 'taxonomy' === $object_type ) {
$meta = self::get_taxonomy_poster_meta( $object_id );
}
$poster = false;
if ( is_array( $meta ) ) {
$meta = wp_array_slice_assoc( $meta, array( 'poster', 'width', 'height' ) );
if ( 3 === count( $meta ) ) {
$poster = array_values( $meta );
}
}
return $poster;
}
/**
* Get singular template poster meta.
*
* @param int $post_id Optional. Post ID.
* @return array|false Singular poster meta. False if undefined.
*/
private static function get_singular_poster_meta( $post_id = null ) {
$post = get_post( $post_id );
if ( isset( $post->ID ) ) {
$post_id = $post->ID;
}
$meta = get_post_meta( $post_id, Widget::META_SOURCE, true );
/**
* Filters singular template poster data.
*
* @param array|false $meta Singular poster meta.
* @param int $post_id Post ID.
*/
return apply_filters( 'sharing_image_singular_poster_meta', $meta, $post_id );
}
/**
* Get taxonomy template poster data.
*
* @param int $term_id Optional. Term ID.
* @return array|false Taxonomy poster meta. False if undefined.
*/
private static function get_taxonomy_poster_meta( $term_id = null ) {
if ( ! Premium::is_premium_features() ) {
return false;
}
if ( is_null( $term_id ) ) {
$term_id = get_queried_object_id();
}
// Get term meta using Widget meta name const.
$meta = get_term_meta( $term_id, Widget::META_SOURCE, true );
/**
* Filters taxonomy template poster data.
*
* @param array $meta Term poster image meta.
* @param int $post_id Term ID.
*/
return apply_filters( 'sharing_image_taxonomy_poster_meta', $meta, $term_id );
}
}