WordPress.org

Plugin Directory

Changeset 766970


Ignore:
Timestamp:
09/04/13 16:34:32 (8 months ago)
Author:
donncha
Message:

Added rich snippet support. See http://schema.org/AggregateRating

Location:
polldaddy/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • polldaddy/trunk/polldaddy-org.php

    r730840 r766970  
    10191019} 
    10201020add_action( 'admin_notices', 'polldaddy_login_warning' ); 
     1021 
     1022/** 
     1023 * check if the hook is scheduled - if not, schedule it. 
     1024 */ 
     1025function polldaddy_setup_schedule() { 
     1026    if ( false == wp_next_scheduled( 'polldaddy_rating_update_job' ) ) { 
     1027        wp_schedule_event( time(), 'daily', 'polldaddy_rating_update_job'); 
     1028    } 
     1029} 
     1030add_action( 'init', 'polldaddy_setup_schedule' ); 
     1031 
     1032/** 
     1033 * On deactivation, remove all functions from the scheduled action hook. 
     1034 */ 
     1035function polldaddy_deactivation() { 
     1036    wp_clear_scheduled_hook( 'polldaddy_rating_update_job' ); 
     1037} 
     1038register_deactivation_hook( __FILE__, 'polldaddy_deactivation' ); 
     1039 
     1040/** 
     1041 * On the scheduled action hook, run a function. 
     1042 */ 
     1043function polldaddy_rating_update() { 
     1044    global $polldaddy_object; 
     1045    $polldaddy = $polldaddy_object->get_client( WP_POLLDADDY__PARTNERGUID, get_option( 'pd-rating-usercode' ) ); 
     1046    $response = $polldaddy->get_rating_results( $rating[ 'id' ], 1, 0, 5 ); 
     1047    $ratings = $response->ratings; 
     1048    if ( empty( $ratings ) ) 
     1049        return false; 
     1050 
     1051    polldaddy_update_ratings_cache( $ratings ); 
     1052} 
     1053 
     1054add_action( 'polldaddy_rating_update_job', 'polldaddy_rating_update' ); 
     1055 
     1056function polldaddy_update_ratings_cache( $ratings ) { 
     1057    foreach( $ratings as $rating ) { 
     1058        $post_id = str_replace( 'wp-post-', '', $rating->uid ); 
     1059        update_post_meta( $post_id, 'pd_rating', array( 'type' => $rating->_type, 'votes' => $rating->_votes,  
     1060            'total1' => $rating->total1, 
     1061            'total2' => $rating->total2, 
     1062            'total3' => $rating->total3, 
     1063            'total4' => $rating->total4, 
     1064            'total5' => $rating->total5,  
     1065            'average' => $rating->average_rating ) ); 
     1066    } 
     1067} 
     1068 
     1069function polldaddy_post_rating( $content ) { 
     1070    if ( false == get_option( 'pd-rating-usercode' ) ) 
     1071        return $content; 
     1072    $rating = get_post_meta( $GLOBALS[ 'post' ]->ID, 'pd_rating' ); 
     1073    if ( false == $rating ) 
     1074        return $content; 
     1075    // convert to 5 star rating 
     1076    if ( $rating[ 'type' ] == 1 ) 
     1077        $average = ceil( ( $rating[0][ 'average' ] / $rating[0][ 'votes' ] ) * 5 ); 
     1078    else 
     1079        $average = $rating[ 'average' ]; 
     1080    return $content . ' 
     1081        <div itemtype="http://schema.org/AggregateRating" itemscope itemprop="aggregateRating"> 
     1082        <meta itemprop="ratingValue" content=' . $average . '> 
     1083        <meta itemprop="ratingCount" content=' . $rating[0][ 'votes' ] . '> 
     1084        </div>'; 
     1085} 
     1086add_filter( 'the_content', 'polldaddy_post_rating' ); 
    10211087?> 
  • polldaddy/trunk/polldaddy.php

    r766287 r766970  
    46334633                    </tr> 
    46344634                </tbody><?php 
    4635         } else {  ?> 
     4635        } else {   
     4636            polldaddy_update_ratings_cache( $ratings ); 
     4637            ?> 
    46364638                <thead> 
    46374639                    <tr> 
Note: See TracChangeset for help on using the changeset viewer.