__( 'Facebook', 'wordpress-seo' ),
'twitter' => __( 'Twitter', 'wordpress-seo' ),
'googleplus' => __( 'Google+', 'wordpress-seo' ),
) as $network => $label
) {
if ( true === $options[ $network ] ) {
if ( 'googleplus' == $network ) {
$network = 'google-plus'; // Yuck, I know.
}
self::$meta_fields['social'][ $network . '-title' ]['title'] = sprintf( __( '%s Title', 'wordpress-seo' ), $label );
self::$meta_fields['social'][ $network . '-title' ]['description'] = sprintf( $title_text, $label );
self::$meta_fields['social'][ $network . '-description' ]['title'] = sprintf( __( '%s Description', 'wordpress-seo' ), $label );
self::$meta_fields['social'][ $network . '-description' ]['description'] = sprintf( $description_text, $label );
self::$meta_fields['social'][ $network . '-image' ]['title'] = sprintf( __( '%s Image', 'wordpress-seo' ), $label );
self::$meta_fields['social'][ $network . '-image' ]['description'] = sprintf( $image_text, $label );
}
}
}
/**
* Output the tab header for the Social tab
*/
public function tab_header() {
echo '
' . __( 'Social', 'wordpress-seo' ) . '';
}
/**
* Output the tab content
*/
public function tab_content() {
$content = '';
foreach ( $this->get_meta_field_defs( 'social' ) as $meta_key => $meta_field ) {
$content .= $this->do_meta_box( $meta_field, $meta_key );
}
$this->do_tab( 'social', __( 'Social', 'wordpress-seo' ), $content );
}
/**
* Filter over the meta boxes to save, this function adds the Social meta boxes.
*
* @param array $field_defs Array of metaboxes to save.
*
* @return array
*/
public function save_meta_boxes( $field_defs ) {
return array_merge( $field_defs, $this->get_meta_field_defs( 'social' ) );
}
/**
* This method will compare opengraph fields with the posted values.
*
* When fields are changed, the facebook cache will be purge.
*
* @param object $post
*/
public function og_data_compare( $post ) {
// Check if post data is available, if post_id is set and if original post_status is publish
if (
! empty( $_POST ) && ! empty( $post->ID ) && $post->post_status == 'publish' &&
isset ( $_POST['original_post_status'] ) && $_POST['original_post_status'] === 'publish'
) {
$fields_to_compare = array(
'opengraph-title',
'opengraph-description',
'opengraph-image',
);
$reset_facebook_cache = false;
foreach ( $fields_to_compare as $field_to_compare ) {
$old_value = self::get_value( $field_to_compare, $post->ID );
$new_value = self::get_post_value( self::$form_prefix . $field_to_compare );
if ( $old_value !== $new_value ) {
$reset_facebook_cache = true;
break;
}
}
if ( $reset_facebook_cache ) {
wp_remote_get(
'https://graph.facebook.com/?id=' . get_permalink( $post->ID ) . '&scrape=true&method=post'
);
}
}
}
/********************** DEPRECATED METHODS **********************/
/**
* Define the meta boxes for the Social tab
*
* @deprecated 1.5.0
* @deprecated use WPSEO_Meta::get_meta_field_defs()
* @see WPSEO_Meta::get_meta_field_defs()
*
* @param string $post_type
*
* @return array Array containing the meta boxes
*/
public function get_meta_boxes( $post_type = 'post' ) {
_deprecated_function( __METHOD__, 'WPSEO 1.5.0', 'WPSEO_Meta::get_meta_field_defs()' );
return $this->get_meta_field_defs( 'social' );
}
} /* End of class */