• Mam plugin wp-postratings. Jest to system oceniania postów. Nastawiony mam na pokazywanie ostatnio ocenianie posty a konkretnie z jednego dnia. Ale wyniki usuwa z widgetu dopiero jak upływa 24 godziny od ocenienia danego postu. Ja natomiast chciałabym żeby usuwało mi z widgetu wyniki po północy a nie jak upłynie 24 godziny. Wyniki są wówczas pokazywane z danego tylko dnia, po północy pokazuje wówczas wyniki z dnia obecnego i po północy znów usunie stare wyniki. Tak wygląda funkcja odpowiedzialna za ten stan. Jeżeli ktoś by mógł mi to przerobić tak, żeby usuwało mi po północy stare oceny.

    ### Function: Display Highest Rated Page/Post With Time Range
    if(!function_exists('get_highest_rated_range')) {
    	function get_highest_rated_range($time = '1 day', $mode = '', $limit = 10, $chars = 0, $display = true) {
    		global $wpdb;
    		$ratings_max = intval(get_option('postratings_max'));
    		$ratings_custom = intval(get_option('postratings_customrating'));
    		$min_time = strtotime('-'.$time, current_time('timestamp'));
    		$output = '';
    		if(!empty($mode) && $mode != 'both') {
    			$where = "$wpdb->posts.post_type = '$mode'";
    		} else {
    			$where = '1=1';
    		}
    		if($ratings_custom && $ratings_max == 2) {
    			$order_by = 'ratings_score';
    		} else {
    			$order_by = 'ratings_average';
    		}
    		$temp = stripslashes(get_option('postratings_template_highestrated'));
    		$highest_rated = $wpdb->get_results("SELECT COUNT($wpdb->ratings.rating_postid) AS ratings_users, SUM($wpdb->ratings.rating_rating) AS ratings_score, ROUND(((SUM($wpdb->ratings.rating_rating)/COUNT($wpdb->ratings.rating_postid))), 2) AS ratings_average, $wpdb->posts.* FROM $wpdb->posts LEFT JOIN $wpdb->ratings ON $wpdb->ratings.rating_postid = $wpdb->posts.ID WHERE rating_timestamp >= $min_time AND $wpdb->posts.post_password = '' AND $wpdb->posts.post_date < '".current_time('mysql')."'  AND $wpdb->posts.post_status = 'publish' AND $where GROUP BY $wpdb->ratings.rating_postid ORDER BY $order_by DESC, ratings_users DESC LIMIT $limit");
    		if($highest_rated) {
    			foreach($highest_rated as $post) {
    				$output .= expand_ratings_template($temp, $post->ID, $post, $chars)."\n";
    			}
    		} else {
    			$output = '<li>'.__('Brak Ocen', 'wp-postratings').'</li>'."\n";
    		}
    		if($display) {
    			echo $output;
    		} else {
    			return $output;
    		}
    	}
    }

    Będę wdzięczna za pomoc

Zobacz 1 odpowiedź (z 1 wszystkich)
  • Twórca wątku marira

    (@marira)

    Zdaję sobie sprawę, ze ten kawałek kodu jest odpowiedzialny za ten stan

    $min_time = strtotime('-'.$time, current_time('timestamp'));

    ale nie wiem jak go przerobić żeby zamiast tej funkcji wstawić kod ten

    " . date('Y-m-d') . " 00:00:00'

    Niby proste ale mam z tym problem.

Zobacz 1 odpowiedź (z 1 wszystkich)
  • Temat ‘wp-postratings’ jest zamknięty na nowe odpowiedzi.