Members gsarig Δημοσ. 14 Αυγούστου 2010 Members Δημοσ. 14 Αυγούστου 2010 Γεια σας, Στην αρχική σελίδα του www.freeweird.com χρησιμοποιώ το Advanced Most Recent Posts plugin για να τραβάω τα 3 τελευταία posts από μία συγκεκριμένη κατηγορία. Θα ήθελα όμως να μπορώ να εμφανίζω σε κάθε post την ημερομηνία και ώρα δημοσίευσής του. Ο κώδικας του php αρχείου του plugin είναι ο παρακάτω: > <?php /* Plugin Name: Advanced Most Recent Posts Plugin URI: http://www.yakupgovler.com/?p=1033 Description: Display most recent posts from selected categories or current category or all posts with thumbnail images (optional). Version: 1.1 Author: Yakup GÖVLER Author URI: http://www.yakupgovler.com */ class yg_recent_posts extends WP_Widget { function yg_recent_posts() { //Load Language load_plugin_textdomain( 'adv-recent-posts', false, dirname(plugin_basename(__FILE__)) . '/lang' ); $widget_ops = array('description' => __('Shows most recent posts. You can customize it easily.', 'adv-recent-posts') ); //Create widget $this->WP_Widget('advancedrecentposts', __('Advanced Recent Posts', 'adv-recent-posts'), $widget_ops); } function widget($args, $instance) { extract($args, EXTR_SKIP); echo $before_widget; $title = empty($instance['title']) ? __('Recent Posts', 'adv-recent-posts') : apply_filters('widget_title', $instance['title']); $parameters = array( 'title' => $title, 'limit' => (int) $instance['show-num'], 'excerpt' => (int) $instance['excerpt-length'], 'actcat' => (bool) $instance['actcat'], 'cats' => esc_attr($instance['cats']), 'cusfield' => esc_attr($instance['cus-field']), 'w' => (int) $instance['width'], 'h' => (int) $instance['height'], 'firstimage' => (bool) $instance['firstimage'], 'atimage' =>(bool) $instance['atimage'], 'defimage' => esc_url($instance['defimage']) ); if ( !empty( $title ) ) { echo $before_title . $title . $after_title; }; //print recent posts yg_recentposts($parameters); echo $after_widget; } //end of widget //Update widget options function update($new_instance, $old_instance) { $instance = $old_instance; //get old variables $instance['title'] = esc_attr($new_instance['title']); $instance['show-num'] = (int) abs($new_instance['show-num']); if ($instance['show-num'] > 20) $instance['show-num'] = 20; $instance['excerpt-length'] = (int) abs($new_instance['excerpt-length']); $instance['cats'] = esc_attr($new_instance['cats']); $instance['actcat'] = $new_instance['actcat'] ? 1 : 0; $instance['cus-field'] = esc_attr($new_instance['cus-field']); $instance['width'] = esc_attr($new_instance['width']); $instance['height'] = esc_attr($new_instance['height']); $instance['firstimage'] = $new_instance['first-image'] ? 1 : 0; $instance['atimage'] = $new_instance['atimage'] ? 1 : 0; $instance['defimage'] = esc_url($new_instance['def-image']); return $instance; } //end of update //Widget options form function form($instance) { $instance = wp_parse_args( (array) $instance, array( 'title' => __('Recent Posts','adv-recent-posts'), 'show-num' => 10, 'excerpt-length' => 0, 'actcat' => 0, 'cats' => '', 'cus-field' => '', 'width' => '', 'height' => '', 'firstimage' => 0, 'atimage' => 0,'defimage'=>'' ) ); $title = esc_attr($instance['title']); $show_num = (int) $instance['show-num']; $excerpt_length = (int) $instance['excerpt-length']; $cats = esc_attr($instance['cats']); $actcat = (bool) $instance['actcat']; $cus_field = esc_attr($instance['cus-field']); $width = esc_attr($instance['width']); $height = esc_attr($instance['height']); $firstimage = (bool) $instance['firstimage']; $atimage = (bool) $instance['atimage']; $defimage = esc_url($instance['defimage']); ?> <p> <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:');?> <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /> </label> </p> <p> <label for="<?php echo $this->get_field_id('show-num'); ?>"><?php _e('Number of posts to show:');?> <input id="<?php echo $this->get_field_id('show-num'); ?>" name="<?php echo $this->get_field_name('show-num'); ?>" type="text" value="<?php echo $show_num; ?>" size ="3" /><br /> <small><?php _e('(at most 20)','adv-recent-posts'); ?></small> </label> </p> <p> <label for="<?php echo $this->get_field_id('excerpt-length'); ?>"><?php _e('Excerpt length (letters):', 'adv-recent-posts');?> <input id="<?php echo $this->get_field_id('excerpt-length'); ?>" name="<?php echo $this->get_field_name('excerpt-length'); ?>" type="text" value="<?php echo $excerpt_length; ?>" size ="3" /><br /> <small>(<?php _e('0 - Don\'t show excerpt', 'adv-recent-posts');?>)</small> </label> </p> <p> <label for="<?php echo $this->get_field_id('cus-field'); ?>"><?php _e('Thumbnail Custom Field Name:', 'adv-recent-posts');?> <input id="<?php echo $this->get_field_id('cus-field'); ?>" name="<?php echo $this->get_field_name('cus-field'); ?>" type="text" value="<?php echo $cus_field; ?>" size ="20" /> </label><br /> <label for="<?php echo $this->get_field_id('width'); ?>"><?php _e('Width:', 'adv-recent-posts');?> <input id="<?php echo $this->get_field_id('width'); ?>" name="<?php echo $this->get_field_name('width'); ?>" type="text" value="<?php echo $width; ?>" size ="3" /></label>px<br /> <label for="<?php echo $this->get_field_id('height'); ?>"><?php _e('Height:', 'adv-recent-posts');?> <input id="<?php echo $this->get_field_id('height'); ?>" name="<?php echo $this->get_field_name('height'); ?>" type="text" value="<?php echo $height; ?>" size ="3" /></label>px </p> <p> <input type="checkbox" class="checkbox" id="<?php echo $this->get_field_id('first-image'); ?>" name="<?php echo $this->get_field_name('first-image'); ?>"<?php checked( $firstimage ); ?> /> <label for="<?php echo $this->get_field_id('first-image'); ?>"><?php _e('Get first image of post', 'adv-recent-posts');?></label> </p> <p> <input type="checkbox" class="checkbox" id="<?php echo $this->get_field_id('atimage'); ?>" name="<?php echo $this->get_field_name('atimage'); ?>"<?php checked( $atimage ); ?> /> <label for="<?php echo $this->get_field_id('atimage'); ?>"><?php _e('Get first attached image of post', 'adv-recent-posts');?></label> </p> <p> <label for="<?php echo $this->get_field_id('def-image'); ?>"><?php _e('Default image:', 'adv-recent-posts');?> <input class="widefat" id="<?php echo $this->get_field_id('def-image'); ?>" name="<?php echo $this->get_field_name('def-image'); ?>" type="text" value="<?php echo $defimage; ?>" /><br /> <small>(<?php _e('if there is no thumbnail, use this', 'adv-recent-posts');?></small> </label> </p> <p> <label for="<?php echo $this->get_field_id('cats'); ?>"><?php _e('Categories:', 'adv-recent-posts');?> <input class="widefat" id="<?php echo $this->get_field_id('cats'); ?>" name="<?php echo $this->get_field_name('cats'); ?>" type="text" value="<?php echo $cats; ?>" /><br /> <small>(<?php _e('Category IDs, separated by commas.', 'adv-recent-posts');?>)</small> </label> </p> <p> <input type="checkbox" class="checkbox" id="<?php echo $this->get_field_id('actcat'); ?>" name="<?php echo $this->get_field_name('actcat'); ?>"<?php checked( $actcat ); ?> /> <label for="<?php echo $this->get_field_id('actcat'); ?>"> <?php _e('Get posts from current category', 'adv-recent-posts');?></label> </p> <?php } //end of form } add_action( 'widgets_init', create_function('', 'return register_widget("yg_recent_posts");') ); //Register Widget // Show recent posts function function yg_recentposts($args = '') { global $wpdb; $defaults = array('limit' => 10, 'excerpt' => 0, 'actcat' => 0, 'cats'=>'', 'cusfield' =>'', 'w' => 48, 'h' => 48, 'firstimage' => 0, 'atimage' => 0, 'defimage' => ''); $args = wp_parse_args( $args, $defaults ); extract($args); $limit = (int) abs($limit); $firstimage = (bool) $firstimage; $atimage = (bool) $atimage; $defimage = esc_url($defimage); $w = (int) $w; $h = (int) $h; $excerptlength = (int) abs($excerpt); $excerpt = ''; $cats = str_replace(" ", "", esc_attr($cats)); if (($limit < 1 ) || ($limit > 20)) $limit = 10; /*$postlist = wp_cache_get('yg_recent_posts'); //Not yet if ( false === $postlist ) { */ if (($actcat) && (is_category())) { $cats = get_query_var('cat'); } if (($actcat) && (is_single())) { $cats = ''; foreach (get_the_category() as $catt) { $cats .= $catt->cat_ID.' '; } $cats = str_replace(" ", ",", trim($cats)); } if (!intval($cats)) $cats=''; $query = "cat=$cats&showposts=$limit"; $posts = get_posts($query); //get posts $postlist = ''; $height = $h ? ' height = "' . $h .'"' : ''; $width = $w ? ' width = "' . $w . '"' : ''; foreach ($posts as $post) { $post_title = htmlspecialchars(stripslashes($post->post_title)); if ($excerptlength) { $excerpt = $post->post_excerpt; if ( '' == $excerpt ) { $text = $post->post_content; $text = strip_shortcodes( $text ); $text = str_replace(']]>', ']]>', $text); $text = strip_tags($text); $excerpt_length = 100; $words = explode(' ', $text, $excerpt_length + 1); if (count($words) > $excerpt_length) { array_pop($words); $text = implode(' ', $words); } $excerpt = $text; } if(strlen($excerpt) > $excerptlength) { $excerpt = mb_substr($excerpt, 0, $excerptlength) . '...'; } $excerpt = ' ' . $excerpt; } $image = ''; $img = ''; if ($cusfield) { $cusfield = esc_attr($cusfield); $img = get_post_meta($post->ID, $cusfield, true); } if (!$img && $firstimage) { $match_count = preg_match_all("/<img[^']*?src=\"([^']*?)\"[^']*?>/", $post->post_content, $match_array, PREG_PATTERN_ORDER); $img = $match_array[1][0]; } if (!$img && $atimage) { $p = array( 'post_type' => 'attachment', 'post_mime_type' => 'image', 'numberposts' => 1, 'order' => 'ASC', 'orderby' => 'menu_order ID', 'post_status' => null, 'post_parent' => $post->ID ); $attachments = get_posts($p); if ($attachments) { $imgsrc = wp_get_attachment_image_src($attachments[0]->ID, 'thumbnail'); $img = $imgsrc[0]; } } if (!$img && $defimage) $img = $defimage; if ($img) $image = '<img src="' . $img . '" title="' . $post_title . '" class="recent-posts-thumb" ' . $width . $height . ' />'; $postlist .= '<h3><a href="' . get_permalink($post->ID) . '" title="'. $post_title .'" >' . $post_title . '</a> </h3>' . '<a href="' . get_permalink($post->ID) . '" title="'. $post_title .'" >' . $image . '</a>' . "<p>" .$excerpt . "</p>"; } /* wp_cache_set('yg_recent_posts', $postlist); }*/ echo '<div class="advanced-recent-posts">'; echo $postlist; echo '</div>'; } ?> Βασισμένος σε αυτή τη συμβουλή, δοκίμασα να αλλάξω τη σειρά 198 του .php από: >$excerpt = ' ' . $excerpt; σε: >$excerpt = ': ' . $excerpt . ' ' . get_the_date(); Αυτό όμως δεν εμφανίζει την ημερομηνία δημοσίευσης του κάθε post, αλλά απλώς επαναλαμβάνει σε κάθε καταχώρηση την ημερομηνία 03/08/2010 (η ημερομηνία δημιουργίας του blog σε wordpress, αν θυμάμαι καλά). Υπάρχει μήπως καμιά ιδέα για το πώς μπορώ να εμφανίσω την ημερομηνία σε κάθε post, είτε δίπλα στον τίτλο είτε στην περιγραφή ή ακόμα και σε ξεχωριστή σειρά; Ευχαριστώ!
antonl Δημοσ. 14 Αυγούστου 2010 Δημοσ. 14 Αυγούστου 2010 Μέχρι ν απαντήση κάποιος που χει πιο πρόσφατη την php και το wordpress, δε δοκιμάζεις κάτι σε: date('l jS \of F Y h:i:s A') αντί για get_the_date() Ρίξε μια ματιά εδώ. Με wordpress δεν είχα ασχοληθεί οπότε μπορεί να πα πατάτα. Άχμ άκυρο Είπα πατάτα τελικά.
dewn735 Δημοσ. 14 Αυγούστου 2010 Δημοσ. 14 Αυγούστου 2010 Δοκίμασε αυτό: ><?php the_time('l, F jS, Y') ?> (http://codex.wordpress.org/Post_Meta_Data_Section)
Members gsarig Δημοσ. 14 Αυγούστου 2010 Μέλος Members Δημοσ. 14 Αυγούστου 2010 Ευχαριστώ για τις απαντήσεις. Δοκίμασε αυτό: ><?php the_time('l, F jS, Y') ?> (http://codex.wordpress.org/Post_Meta_Data_Section) Αυτό σε ποιο σημείο του κώδικα θα πρέπει να το βάλω; Το είχα δει κι εγώ στο codex αλλά όταν το είχα δοκιμάσει δεν μου εμφάνιζε τίποτα. Συγκεκριμένα, είχα δοκιμάσει να το βάλω σε διάφορα σημεία του >$postlist .= '<h3><a href="' . get_permalink($post->ID) . '" title="'. $post_title .'" >' . $post_title . '</a> </h3>' . '<a href="' . get_permalink($post->ID) . '" title="'. $post_title .'" >' . $image . '</a>' . "<p>" .$excerpt . "</p>"; } αλλά δεν έγινε τίποτα (είτε έβγαζε λάθος στο syntax είτε δεν φόρτωνε τίποτα καινούριο η σελίδα)
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.