انجمن


اخبار سایت  (۱۶ نوشته)

  • lawgostar

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۴۴
    تشکر شده: ۲۶ بار
    # نوشته شده: ۱۲ سال پیش
    ۸ بهمن ۱۳۹۰ - ۲۳:۳۲

    سلام
    قصد دارم یه قسمت اخبار سایت را در سایت ایجاد کنم . اما نمیدونم باید چه کدی بنویسم که مطلب به قسمت اخبار سایت برود و مهمتر اینکه مطلب ارسالی فقط در قسمت اخبار نمایش داده شود نه اینکه هم در قسمت اخبار باشد و هم در قسمت مطالب سایت .
    هرکی میتونه کمک کنه . دمتون گرم

  • Parsa

    آفلاین
    عضو فعال
    تعداد نوشته‌ها: ۱۹۲۱
    تشکر شده: ۲۶۸۳ بار
    # نوشته شده: ۱۲ سال پیش
    ۹ بهمن ۱۳۹۰ - ۰۸:۳۴

    باید از قابلیت custom post type وردپرس کمک بگیرید
    این افزونه به شما کمک میکند
    یا types

    خروجی custom post type query

    wp_query

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    NESTED - lawgostar - Morteza - Lunatic - امین - Saeed Fard
  • lawgostar

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۴۴
    تشکر شده: ۲۶ بار
    # نوشته شده: ۱۲ سال پیش
    ۹ بهمن ۱۳۹۰ - ۰۹:۵۹

    اما قبلش باید یه کدی بنویسم دیگه که مثلا وقتی من میخام خبر توی سایتم بزارم این خبر خودش برود جای مخصوص خودش . اون کد را باید چی بنویسم ؟

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Lunatic
  • Parsa

    آفلاین
    عضو فعال
    تعداد نوشته‌ها: ۱۹۲۱
    تشکر شده: ۲۶۸۳ بار
    # نوشته شده: ۱۲ سال پیش
    ۹ بهمن ۱۳۹۰ - ۱۰:۳۱

    شما باید با توجه به post type کوئری بگیرید (دو لینک آخر!)

    <?php
    
    // The Query
    $the_query = new WP_Query( 'post_type=news&showposts=10' );
    
    // The Loop
    while ( $the_query->have_posts() ) : $the_query->the_post();
    	echo '<li>';
    	the_title();
    	echo '</li>';
    endwhile;
    
    // Reset Post Data
    wp_reset_postdata();
    
    ?>
    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    lawgostar - Morteza - NESTED - Lunatic - امین
  • lawgostar

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۴۴
    تشکر شده: ۲۶ بار
    # نوشته شده: ۱۲ سال پیش
    ۹ بهمن ۱۳۹۰ - ۱۰:۵۷

    دوست عزیز من این کد را توی قسمت ویرایشگرم قراردادم اما وقتی خبر واسه تست میزارم توی قسمت خودش توی ارشیوم نمیاد .
    من خبر تست را می نویسم و توی موضوعات توی اخبار سایت قرار میدهم اما وقتی انتشار میدهم ، خبر توی ارشیو سمت چپ سایتم نمیاد . باید چیکار کنم ؟
    http://www.lawgostar.com/main

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Lunatic
  • Parsa

    آفلاین
    عضو فعال
    تعداد نوشته‌ها: ۱۹۲۱
    تشکر شده: ۲۶۸۳ بار
    # نوشته شده: ۱۲ سال پیش
    ۹ بهمن ۱۳۹۰ - ۱۱:۳۱

    از افزونه اولی برای ایجاد نوع پست جدید استفاده کردید؟
    نام نوع باید news باشد تا کوئری عمل کند

    کاری که شما کردید استفاده از دسته است. برای کوئری از دسته قبلا زیاد بحث شده است

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Morteza - lawgostar - Lunatic - امین
  • lawgostar

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۴۴
    تشکر شده: ۲۶ بار
    # نوشته شده: ۱۲ سال پیش
    ۹ بهمن ۱۳۹۰ - ۱۱:۵۳

    من از توضیح این قسمت استفاده کردم اینجا اما وقتی کد را کپی کردم و طبق دستور جایگزین کردم قالب سایتم که باز میشد به جای ستون دمی فقط چند خط سبز را نشون میده . مشکل کجاشه ؟
    راستی منظور از شناسه دسته چیه ؟

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Lunatic
  • Parsa

    آفلاین
    عضو فعال
    تعداد نوشته‌ها: ۱۹۲۱
    تشکر شده: ۲۶۸۳ بار
    # نوشته شده: ۱۲ سال پیش
    ۹ بهمن ۱۳۹۰ - ۱۳:۴۰

    خط سبز!!! ( ۷ )
    در سایت زیاد بحث شده. مطالب را بخوانید. مشکلتون حل میشه

    شناسه دسته همون id دسته هست. در برگه دسته‌ها میتوانید آن را بدست بیاورید

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Lunatic - امین
  • lawgostar

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۴۴
    تشکر شده: ۲۶ بار
    # نوشته شده: ۱۲ سال پیش
    ۹ بهمن ۱۳۹۰ - ۱۶:۰۴

    توی این انجمن خییلییی تایپینک هست . منم که اون بالا سرچ می کنم پیدا نمی کنه ؟
    اگه ادرس بلدی لینک بده بی زخمت

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Lunatic
  • Parsa

    آفلاین
    عضو فعال
    تعداد نوشته‌ها: ۱۹۲۱
    تشکر شده: ۲۶۸۳ بار
    # نوشته شده: ۱۲ سال پیش
    ۹ بهمن ۱۳۹۰ - ۱۶:۵۲

    آخرین مطالب

    <ul>
    <?php
    
    // The Query
    $the_query = new WP_Query( 'cat=3&showposts=10' );
    
    // The Loop
    while ( $the_query->have_posts() ) : $the_query->the_post();
    	echo '<li>';
    
    ?>
    	<a href="<?php the_permalink() ?>" rel="bookmark" <?php the_title_attribute(); ?>>
    	<?php the_title(); ?>
    	</a>
    <?php
    	echo '</li>';
    endwhile;
    
    // Reset Post Data
    wp_reset_postdata();
    
    ?>
    </ul>
    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Morteza - lawgostar - Lunatic - امین - Saeed Fard
  • lawgostar

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۴۴
    تشکر شده: ۲۶ بار
    # نوشته شده: ۱۲ سال پیش
    ۹ بهمن ۱۳۹۰ - ۱۹:۳۵

    خدا را شکر این مشکلم هم حل شد . اما ایا کدی هست که بتونه کاری کنه تا اخبار فقط توی قسمت مربوط خودش ظاهر بشه و نه هم توی قسمت اخبار و هم توی صفحه اصلی سایت ؟

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Lunatic
  • lawgostar

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۴۴
    تشکر شده: ۲۶ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۰ بهمن ۱۳۹۰ - ۰۹:۱۰

    کسی نیست کمک کنه

  • Morteza

    آفلاین
    ناظم
    تعداد نوشته‌ها: ۳۴۰۲
    تشکر شده: ۳۱۲۸ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۰ بهمن ۱۳۹۰ - ۱۱:۴۶

    دوست عزیز
    تاپیک رو بیخود بالا نیارید.
    صبر داشته باشید.

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Parsa
  • Parsa

    آفلاین
    عضو فعال
    تعداد نوشته‌ها: ۱۹۲۱
    تشکر شده: ۲۶۸۳ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۰ بهمن ۱۳۹۰ - ۲۰:۰۵

    lawgostar گفت:
    خدا را شکر این مشکلم هم حل شد . اما ایا کدی هست که بتونه کاری کنه تا اخبار فقط توی قسمت مربوط خودش ظاهر بشه و نه هم توی قسمت اخبار و هم توی صفحه اصلی سایت ؟

    1- استفاده از روش پست اولم (custom post type)
    2- http://forum.wp-persian.com/topic/13238#post-88256
    http://forum.wp-persian.com/topic/16770

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Saeed Fard - Lunatic - Morteza
  • lawgostar

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۴۴
    تشکر شده: ۲۶ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۲ اسفند ۱۳۹۰ - ۱۱:۵۵

    هنوز نتونستما

  • lawgostar

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۴۴
    تشکر شده: ۲۶ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۲ اسفند ۱۳۹۰ - ۱۲:۰۳

    افزونه News-Ticker را نصب کردم چه جوری باید باهاش کار کرد ؟

    <?php
    /*
    Plugin Name: News-Ticker
    Plugin URI: http://18elements.com/tools/news-ticker-for-wordpress
    Description: Inserts a fading or sliding text banner with Posts, Entries or Comments RSS feeds
    Author: Daniel Sachs
    Author URI: http://18elements.com/
    Version: 2.1.0
    */
    /*
    Copyright 2009 18elements.com  (email: hello@18elements.com)
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
    */
    define('TICKER_VERSION', '2.1.0');
    define('TICKER_MAX_INT', defined('PHP_INT_MAX') ? PHP_INT_MAX : 32767);
    define('PHPREQ',5);
    
    $phpver=phpversion();$phpmaj=$phpver[0];
    if($phpmaj>=PHPREQ){
      require_once('rss.php');
     }
    register_activation_hook( __FILE__, 'ticker_activate' );
    register_deactivation_hook( __FILE__, 'ticker_deactivate' );
    add_action('switch_theme', 'ticker_activate');
    add_action('admin_menu', 'ticker_add_pages');
    add_action('wp_print_scripts','ticker_js');
    
    function ticker_js(){
    if(!is_admin()){
    	wp_enqueue_script ('jquery');
    	wp_enqueue_script ('ticker_pack', '/' . PLUGINDIR . '/news-ticker/cycle.js', array('jquery'));
    }
    }
    function insert_newsticker(){
      $tickerspeed=get_option('ticker_speed');
      $tickertimeout=get_option('ticker_timeout');
      $tickeranimation=get_option('ticker_anim');
      $tickerheight=get_option('ticker_ht');
      ?>
    <!-- START TICKER VER <?php echo TICKER_VERSION; ?> -->
    <script type="text/javascript" language="javascript">
    jQuery(document).ready(function(){
      jQuery('#news-ticker').cycle({
    	 pause: 1,
    	 sync: 0,
    	 speed: <?php echo $tickerspeed; ?>000,
    	 timeout: <?php echo $tickertimeout; ?>000,
    	 height: <?php echo $tickerheight; ?>,
    	 fx: '<?php echo $tickeranimation; ?>'
      });
    });
    </script>
    <ul id="news-ticker" style="overflow:hidden;">
      <?php ticker_content($content); ?>
    </ul>
    <!-- END TICKER -->
    <?php
    }
    
    function ticker_content(){
     $phpver=phpversion();$phpmaj=$phpver[0];
     if($phpmaj<PHPREQ){
       $postorcomment=get_option('ticker_rss');
       update_option('ticker_rss','norss');
     }
     $site_url = get_option('siteurl');
    
     $rss_opt_val = get_option('ticker_rss');
    
     $images_opt_val = get_option('ticker_images');
     $dates_opt_val = get_option('ticker_dates');
     $content_opt_val = get_option('ticker_content');
    
     $type_opt_val = get_option('ticker_type');
     if($type_opt_val=='recent-comments' && $rss_opt_val=='norss'){
       $posts = ticker_recent_comments(
    			     get_option('ticker_num_posts'),
    			     get_option('ticker_auto_excerpt_length')
    			     );
    
     }else{
       switch($rss_opt_val){
       case 'external':
         include_once(ABSPATH.WPINC.'/rss.php');
    	 $namenum = get_option('ext_rss');
    	 $maxnum = get_option('ext_rss_num');
         $feed = fetch_rss($namenum);
         $items = array_slice($feed->items, 0, $maxnum);
         break;
       case 'comments':
         $posts = ticker_use_rss($site_url."/?feed=comments-rss2");
         break;
       case 'entries':
         $posts = ticker_use_rss($site_url."/?feed=rss2");
         break;
       case 'norss':
         $posts = ticker_get_posts(
    			       get_option('ticker_type'),
    			       get_option('ticker_category_filter'),
    			       get_option('ticker_num_posts'),
    			       get_option('ticker_user_specified_posts')
    			       );
         break;
       case 'norss-comments':
         break;
       default:
         $posts = ticker_get_posts(
    			       get_option('ticker_type'),
    			       get_option('ticker_category_filter'),
    			       get_option('ticker_num_posts'),
    			       get_option('ticker_user_specified_posts')
    			       );
         break;
       }
     }
    
    if ($rss_opt_val=='external') {
    if (!empty($items)) :
          foreach ($items as $item) : ?>
    <li><span class="tickerDate"><?php $pubdate = substr($item['pubdate'], 4, 12); echo $pubdate; ?></span> - <span class="tickerLink"><a href="<?php echo $item['link']; ?>"><?php echo $item['title']; ?></a></b></span></li>
    <?php endforeach;
    endif;
    } else {  
    
     foreach ($posts as $post_id => $post){
       $title=$posts[$post_id]['post_title'];
       $excerpt=$posts[$post_id]['post_excerpt'];
       $link=$posts[$post_id]['url'];
       $date=$posts[$post_id]['post_human_date'];
       $data = ticker_recent_imgs($post_id);
    ?>
    
    <li><?php if($images_opt_val=='checked') { ?><span class="tickerImg"><img src="<?php echo $data[0]->guid; ?>" /></span><?php } ?><?php if($dates_opt_val=='checked') { ?><span class="tickerDate"><?php echo $date; ?></span> - <?php } ?><span class="tickerLink"><a href="<?php echo $link; ?>"><?php echo $title;?></a></span><?php if($content_opt_val=='checked') { ?> - <span class="tickerText"><?php echo $excerpt; ?>... <a href="<?php echo $link; ?>">More &rarr;</a></span><?php } ?></li>
    
    <?php
    }
    }
    }
    
    /**
     * Get an array of recent comments
     * Adapted from simple_recent_comments http://www.g-loaded.eu/2006/01/15/simple-recent-comments-wordpress-plugin/
     */
    function ticker_recent_comments($src_count, $src_length) {
    	global $wpdb;
    
    	$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,
    			SUBSTRING(comment_content,1,$src_length) AS com_excerpt
    			FROM $wpdb->comments
    			LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID)
    			WHERE comment_approved = '1' AND comment_type = '' AND post_password = ''
    			ORDER BY comment_date_gmt DESC
    			LIMIT $src_count";
    	$comments = $wpdb->get_results($sql);
    
    	foreach($comments as $comment){
    	  $title="Comment on ".$comment->post_title." by ".$comment->comment_author;
    	  $link =get_permalink($comment->ID);
    	  $description=$comment->com_excerpt;
    
    	  $posts[$comment->comment_ID]['post_title']=ticker_html_to_text($title);
    	  $posts[$comment->comment_ID]['post_excerpt']=ticker_html_to_text($description);
    	  $posts[$comment->comment_ID]['url']=$link;
    	}
    return $posts;
    }
    
    function ticker_get_posts($type, $cat_filter, $n, $post_list=null){
    	switch($type){
    		case 'popular':
    			$days = get_option('ticker_popular_days');
    			$popular_posts = stats_get_csv('postviews', "days=$days&limit=0"); 
    
    			$post_list = '';
    			foreach ($popular_posts as $post) {
    				if($post_list!='')
    					$post_list .= ', ';
    
    				$post_list .= $post['post_id'];
    			}
    
    			return ticker_get_posts('userspecified', $cat_filter, $n, $post_list);
    			break;
    
    		case 'recent':
    			$posts = get_posts(
    				array(
    					'numberposts' => TICKER_MAX_INT,
    					'orderby' => 'post_date',
    				)
    			);
    
    			break;
    
    		case 'commented':
    			$posts = get_posts(
    				array(
    					'numberposts' => TICKER_MAX_INT,
    					'orderby' => 'comment_count',
    				)
    			);
    			break;
    
    		case 'userspecified':
    			$posts_tmp = get_posts(
    				array(
    					'numberposts' => TICKER_MAX_INT,
    					'include' => $post_list,
    				)
    			);
    
    			$posts = array();
    			$post_list_arr = preg_split('/[\s,]+/', $post_list); 
    
    			foreach($post_list_arr as $post_id) {
    				foreach($posts_tmp as $post) {
    					if($post->ID==$post_id) {
    						$posts[] = $post;
    						break;
    					}
    				}
    			}
    			break;
    
    		default:
    			$posts = null;
    			break;
    	}
    
    	if($cat_filter==null || sizeof($cat_filter)<1)
    		$do_category_filter = false;
    	else
    		$do_category_filter = true;
    
    	$posts_fixed = array();
    	if($posts!=null && sizeof($posts)>0 && is_object($posts[0])) {
    		foreach($posts as $k => $v){
    			if(sizeof($posts_fixed)==$n)
    				break;
    			$post_categories = wp_get_post_categories($v->ID);
    			if(!$do_category_filter || ($do_category_filter && sizeof(array_intersect($cat_filter, $post_categories))>0))
    				$posts_fixed[$v->ID] = (array) $v;
    		}
    	}
    	ticker_get_posts_categories($posts_fixed);
    	ticker_get_posts_tags($posts_fixed);
    	ticker_get_posts_meta($posts_fixed);
    	ticker_get_posts_tweak($posts_fixed);
    
    	return $posts_fixed;
    }
    
    function ticker_get_posts_categories(&$posts) {
    	foreach ($posts as $post_id => $post) {
    		$cats = wp_get_post_categories($post_id);
    		$categories = '';
    		$cat_num = 1;
    		foreach ($cats as $cat_id) {
    			$cat = get_category($cat_id);
    			if($categories!='')
    				$categories .= ', ';
    			$categories .= $cat->name;
    			$posts[$post_id]["category_$cat_num"] = $cat->name;
    			$cat_num++;
    		}
    		$posts[$post_id]['categories'] = $categories;
    	}
    }
    
    function ticker_recent_imgs($post_id) {
    global $wpdb;
    return $wpdb->get_results( "SELECT guid FROM $wpdb->posts WHERE post_parent=$post_id AND post_type = 'attachment' ORDER BY 'post_date' ASC LIMIT 0,1" );
    }
    
    function ticker_get_posts_tags(&$posts) {
    	foreach ($posts as $post_id => $post) {
    		$tags = get_the_tags($post_id);
    		$tags_str = '';
    		if($tags!=null && sizeof($tags)>0) {
    			$tag_num = 1;
    			foreach ($tags as $tag) {
    				if($tags_str!='')
    					$tags_str .= ', ';
    				$tags_str .= $tag->name;
    				$posts[$post_id]["tag_$tag_num"] = $tag->name;
    				$tag_num++;
    			}
    		}
    		$posts[$post_id]['tags'] = $tags_str;
    	}
    }
    
    function ticker_get_posts_meta(&$posts) {
    	foreach ($posts as $post_id => $post) {
    		$custom_fields = get_post_custom($post_id);
    		foreach ($custom_fields as $k => $v) {
    			$posts[$post_id][$k] = $v[0];
    		}
    	}
    }
    
    function ticker_get_posts_tweak(&$posts) {
    	$date_chars = array('d', 'D', 'j', 'l', 'N', 'S', 'w', 'z', 'W', 'F', 'm', 'M', 'n', 't', 'L', 'o', 'Y', 'y', 'a', 'A', 'B', 'g', 'G', 'h', 'H', 'i', 's', 'u', 'e', 'I', 'O', 'P', 'T', 'Z', 'c', 'r', 'U');
    
    	foreach ($posts as $post_id => $post) {
    		$date_str = $post['post_date'];
    		$date = ticker_parse_date($date_str);
    		$posts[$post_id]['post_human_date'] = ticker_date_to_human_date($date);
    		$posts[$post_id]['post_long_human_date'] = ticker_date_to_long_human_date($date);
    		$posts[$post_id]['post_slashed_date'] = ticker_date_to_slashed_date($date);
    		$posts[$post_id]['post_dotted_date'] = ticker_date_to_dotted_date($date);
    		$posts[$post_id]['post_human_time'] = ticker_date_to_human_time($date);
    		$posts[$post_id]['post_long_human_time'] = ticker_date_to_long_human_time($date);
    		$posts[$post_id]['post_military_time'] = ticker_date_to_military_time($date);
    
    		foreach($date_chars as $dc)
    			$posts[$post_id]["post_date_$dc"] = date($dc, $date);
    
    		$date_str = $post['post_modified'];
    		$date = ticker_parse_date($date_str);
    		$posts[$post_id]['post_modified_human_date'] = ticker_date_to_human_date($date);
    		$posts[$post_id]['post_modified_long_human_date'] = ticker_date_to_long_human_date($date);
    		$posts[$post_id]['post_modified_slashed_date'] = ticker_date_to_slashed_date($date);
    		$posts[$post_id]['post_modified_dotted_date'] = ticker_date_to_dotted_date($date);
    		$posts[$post_id]['post_modified_human_time'] = ticker_date_to_human_time($date);
    		$posts[$post_id]['post_modified_long_human_time'] = ticker_date_to_long_human_time($date);
    		$posts[$post_id]['post_modified_military_time'] = ticker_date_to_military_time($date);
    
    		foreach($date_chars as $dc)
    			$posts[$post_id]["post_modified_date_$dc"] = date($dc, $date);		
    
    		$posts[$post_id]['post_content'] = $post['post_content'];
    
    		if(function_exists('do_shortcode'))
    			$posts[$post_id]['post_content'] = do_shortcode($posts[$post_id]['post_content']);
    
    		$posts[$post_id]['post_content'] =
    			ticker_html_to_text(
    				str_replace("\xC2\xA0", '',
    					$posts[$post_id]['post_content']
    				)
    			);
    
    		if($posts[$post_id]['post_excerpt']==null || $posts[$post_id]['post_excerpt']=='') {
    			$auto_excerpt_chars = get_option('ticker_auto_excerpt_length');
    			$s = $posts[$post_id]['post_content'];
    			$s = substr($s, 0, $auto_excerpt_chars);
    			$s = substr($s, 0, strrpos($s, ' '));
    
    			$posts[$post_id]['post_excerpt'] = $s;
    		}
    		else {
    			$posts[$post_id]['post_excerpt'] = ticker_html_to_text($posts[$post_id]['post_excerpt']);
    		}
    
    		$posts[$post_id]['nickname'] = get_usermeta($post['post_author'], 'nickname');
    		$posts[$post_id]['url'] = apply_filters('the_permalink', get_permalink($post_id));
    	}
    }
    
    function ticker_html_to_text($html) {
    	$html = preg_replace('/<style[^>]*>.*?<\/style[^>]*>/si','',$html);
    
    	$html = preg_replace('/<script[^>]*>.*?<\/script[^>]*>/si','',$html);
    
      $tags = array (
    	  0 => '/<(\/)?h[123][^>]*>/si',
    	  1 => '/<(\/)?h[456][^>]*>/si',
    	  2 => '/<(\/)?table[^>]*>/si',
    	  3 => '/<(\/)?tr[^>]*>/si',
    	  4 => '/<(\/)?li[^>]*>/si',
    	  5 => '/<(\/)?br[^>]*>/si',
    	  6 => '/<(\/)?p[^>]*>/si',
    	  7 => '/<(\/)?div[^>]*>/si',
      );
      $html = preg_replace($tags, "\n", $html);
    
    	$html = preg_replace('/<[^>]+>/s', '', $html);
    	$html = preg_replace('/\&nbsp;/', ' ', $html);
    	$html = preg_replace('/ +/s', ' ', $html);
    	$html = preg_replace('/^\s+/m', '', $html);
    	$html = preg_replace('/\s+$/m', '', $html);
    	$html = preg_replace('/\n+/s', '-!Line Break123!-', $html);
    	$html = preg_replace('/(-!Line Break123!-)+/s', ' - ', $html);
    	$html = preg_replace('/ +/s', ' ', $html);
    	$html = preg_replace('/^\s+/m', '', $html);
    	$html = preg_replace('/\s+$/m', '', $html);
    
    	return $html;
    }
    
    function ticker_date_to_human_date($date) {
      return date('F j, Y', $date);
    }
    function ticker_date_to_long_human_date($date) {
      return date('l jS \of F Y', $date);
    }
    function ticker_date_to_slashed_date($date) {
      return date('m/d/y', $date);
    }
    function ticker_date_to_dotted_date($date) {
      return date('m.d.y', $date);
    }
    function ticker_date_to_human_time($date) {
      return date('g:i a', $date);
    }
    function ticker_date_to_long_human_time($date) {
      return date('g:i:s a', $date);
    }
    function ticker_date_to_military_time($date) {
      return date('H:i:s', $date);
    }
    function ticker_parse_date($string) {
      preg_match('#([0-9]{1,4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})#', $string, $matches);
      return mktime($matches[4], $matches[5], $matches[6], $matches[2], $matches[3], $matches[1]);
    }
    
    function ticker_activate()
    {
      ticker_set_default_options();
    }
    function ticker_deactivate()
    {
      //echo('Deactivating News-Ticker');
      //ticker_delete_options();
    }
    
    function ticker_set_default_options() {
      if(get_option('ticker_images')===false)		                add_option('ticker_images', '');
      if(get_option('ticker_dates')===false)		                add_option('ticker_dates', '');
      if(get_option('ticker_content')===false)		                add_option('ticker_content', '');
      if(get_option('ticker_type')===false)		                    add_option('ticker_type', 'commented');
      if(get_option('ticker_category_filter')===false)		        add_option('ticker_category_filter', array());
      if(get_option('ticker_user_specified_posts')===false)		    add_option('ticker_user_specified_posts', '');
      if(get_option('ticker_num_posts')===false)			        add_option('ticker_num_posts', 5);
      if(get_option('ticker_popular_days')===false)			        add_option('ticker_popular_days', 90);
      if(get_option('ticker_auto_excerpt_length')===false)		    add_option('ticker_auto_excerpt_length', 110);
      if(get_option('ticker_admin_messages_to_show_once')===false)  add_option('ticker_admin_messages_to_show_once', array());
      if(get_option('ticker_rss')===false)		                    add_option('ticker_rss', 'norss');
      if(get_option('ext_rss')===false)		                        add_option('ext_rss', '');
      if(get_option('ext_rss_num')===false)		                    add_option('ext_rss_num', '');
      if(get_option('ticker_speed')===false)		                add_option('ticker_speed', 1);
      if(get_option('ticker_timeout')===false)		                add_option('ticker_timeout', 2);
      if(get_option('ticker_anim')===false)		                    add_option('ticker_anim', 'fade');
      if(get_option('ticker_ht')===false)		                    add_option('ticker_ht', 20);
    }
    function ticker_delete_options() {
    	delete_option('ticker_images');
    	delete_option('ticker_dates');
    	delete_option('ticker_content');
    	delete_option('ticker_type');
    	delete_option('ticker_category_filter');
    	delete_option('ticker_user_specified_posts');
    	delete_option('ticker_num_posts');
    	delete_option('ticker_popular_days');
    	delete_option('ticker_auto_excerpt_length');
    	delete_option('ticker_admin_messages_to_show_once');
    	delete_option('ticker_rss');
    	delete_option('ext_rss');
    	delete_option('ext_rss_num');
    	delete_option('ticker_speed');
    	delete_option('ticker_timeout');
    	delete_option('ticker_anim');
    	delete_option('ticker_ht');
    }
    function ticker_add_pages() {
    	add_options_page('News Ticker', 'News Ticker', 8, 'tickeroptions', 'ticker_options_page');
    }
    
    function ticker_options_page() {
    	$hidden_field_name = 'ticker_submit_hidden';
    
    	$images_opt_name = 'ticker_images';
    	$dates_opt_name = 'ticker_dates';
    	$content_opt_name = 'ticker_content';
    	$type_opt_name = 'ticker_type';
    	$category_filter_opt_name = 'ticker_category_filter';
    	$user_specified_posts_opt_name = 'ticker_user_specified_posts';
    	$num_posts_opt_name = 'ticker_num_posts';
    	$popular_days_opt_name = 'ticker_popular_days';
    	$auto_excerpt_length_opt_name = 'ticker_auto_excerpt_length';
    	$rss_opt_name = 'ticker_rss';
    	$ext_rss_name = 'ext_rss';
    	$ext_rss_num_name = 'ext_rss_num';
    	$ticker_speed_opt_name = 'ticker_speed';
    	$ticker_timeout_opt_name = 'ticker_timeout';
    	$ticker_anim_opt_name = 'ticker_anim';
    	$ticker_ht_opt_name = 'ticker_ht';
    
    	$images_opt_val = get_option($images_opt_name);
    	$dates_opt_val = get_option($dates_opt_name);
    	$content_opt_val = get_option($content_opt_name);
        $type_opt_val = get_option($type_opt_name);
    	$category_filter_val = get_option($category_filter_opt_name);
    	$user_specified_posts_opt_val = get_option($user_specified_posts_opt_name);
    	$num_posts_opt_val = get_option($num_posts_opt_name);
    	$popular_days_opt_val = get_option($popular_days_opt_name);
    	$auto_excerpt_length_opt_val = get_option($auto_excerpt_length_opt_name);
    	$rss_opt_val = get_option($rss_opt_name);
    	$ext_rss_val = get_option($ext_rss_name);
    	$ext_rss_num_val = get_option($ext_rss_num_name);
    	$ticker_speed_opt_val = get_option($ticker_speed_opt_name);
    	$ticker_timeout_opt_val = get_option($ticker_timeout_opt_name);
    	$ticker_anim_opt_val = get_option($ticker_anim_opt_name);
    	$ticker_ht_opt_val = get_option($ticker_ht_opt_name);
    
    	if( $_POST[ $hidden_field_name ] == 'Y' ) {
    		$images_opt_val = $_POST[$images_opt_name];
    		$dates_opt_val = $_POST[$dates_opt_name];
    		$content_opt_val = $_POST[$content_opt_name];
    		$type_opt_val = $_POST[$type_opt_name];
    		$category_filter_val = $_POST[$category_filter_opt_name];
    		$user_specified_posts_opt_val = $_POST[$user_specified_posts_opt_name];
    		$frequency_opt_val = $_POST[$frequency_opt_name];
    		if($_POST[$frequency_opt_name]==null || $_POST[$frequency_opt_name]=='' || $_POST[$frequency_opt_name]<1)
    			$frequency_opt_val = 10;
    
    		$num_posts_opt_val = $_POST[$num_posts_opt_name];
    		$popular_days_opt_val = $_POST[$popular_days_opt_name];
    		$auto_excerpt_length_opt_val = $_POST[$auto_excerpt_length_opt_name];
    		$rss_opt_val = $_POST[$rss_opt_name];
    		$ext_rss_val = $_POST[$ext_rss_name];
    		$ext_rss_num_val = $_POST[$ext_rss_num_name];
    		$ticker_speed_opt_val = $_POST[$ticker_speed_opt_name];
    		$ticker_timeout_opt_val = $_POST[$ticker_timeout_opt_name];
    		$ticker_anim_opt_val = $_POST[$ticker_anim_opt_name];
    		$ticker_ht_opt_val = $_POST[$ticker_ht_opt_name];
    		if($type_opt_val=='popular' && !function_exists('stats_get_csv')) {
    			echo "<div class='updated' style='background-color:#f66;'><p><a href='options-general.php?page=tickeroptions'>Ticker for Wordpress</a> needs attention: please install the <a href='http://wordpress.org/extend/plugins/stats/'>Wordpress.com Stats</a> plugin to use the 'Most popular' post selection type.  Until the plugin is installed, consider using the 'Most commented' post selection type instead.</p></div>";
    			$type_opt_val = 'commented';
    		}
    
    		update_option($images_opt_name, $images_opt_val);
    		update_option($dates_opt_name, $dates_opt_val);
    		update_option($content_opt_name, $content_opt_val);
    		update_option($type_opt_name, $type_opt_val);
    		update_option($category_filter_opt_name, $category_filter_val);
    		update_option($user_specified_posts_opt_name, $user_specified_posts_opt_val);
    		update_option($num_posts_opt_name, $num_posts_opt_val);
    		update_option($popular_days_opt_name, $popular_days_opt_val);
    		update_option($auto_excerpt_length_opt_name, $auto_excerpt_length_opt_val);
    		update_option($rss_opt_name, $rss_opt_val);
    		update_option($ext_rss_name, $ext_rss_val);
    		update_option($ext_rss_num_name, $ext_rss_num_val);
    		update_option($ticker_speed_opt_name, $ticker_speed_opt_val);
    		update_option($ticker_timeout_opt_name, $ticker_timeout_opt_val);
    		update_option($ticker_anim_opt_name, $ticker_anim_opt_val);
    		update_option($ticker_ht_opt_name, $ticker_ht_opt_val);
    
    		echo '<div class="updated"><p><strong>Options saved.</strong></p></div>';
    	}
    
    	$stats_installed_str = function_exists('stats_get_csv')?'<font color="#00cc00">is installed</font>':'<font color="#ff0000">is not installed</font>';
    	$plugin_directory = ticker_get_plugin_root();
    
    	?>
    <div class="wrap">
      <h2>News Ticker Options</h2>
      <form name="form1" method="post" action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>">
        <input type="hidden" name="<?php echo $hidden_field_name; ?>" value="Y">
        <table class="form-table">
              <tr valign="top">
            <th scope="row">News Ticker Content <br />(For Posts selection only)</th>
            <td>
              The title of the post is displayed in all cases. You can add the following display options<br />
              <input type="checkbox" name="<?php echo $images_opt_name; ?>" <?php if (isset($images_opt_name)) { echo 'value="checked"'; }?> <?php if($images_opt_val=='checked') { echo 'checked'; } ?>>
              Display Images<br/>
              <input type="checkbox" name="<?php echo $dates_opt_name; ?>" <?php if (isset($dates_opt_name)) { echo 'value="checked"'; }?> <?php if($dates_opt_val=='checked') { echo 'checked'; } ?>>
              Display Dates<br/>
              <input type="checkbox" name="<?php echo $content_opt_name; ?>" <?php if (isset($content_opt_name)) { echo 'value="checked"'; }?> <?php if($content_opt_val=='checked') { echo 'checked'; } ?>>
              Display Excerpts<br/>
          </tr>
          <tr valign="top">
            <th scope="row">Post Selection:</th>
            <td><input type="radio" name="<?php echo $type_opt_name; ?>" value='popular' <?php if($type_opt_val=='popular') { echo 'checked'; } ?>>
              Most Popular Posts over the last
              <input type="text" name="<?php echo $popular_days_opt_name; ?>" value="<?php echo $popular_days_opt_val; ?>" size="2">
              days (<a href='http://wordpress.org/extend/plugins/stats/'>Wordpress.com Stats Plugin</a> <?php echo $stats_installed_str; ?>)<br/>
              <input type="radio" name="<?php echo $type_opt_name; ?>" value='commented' <?php if($type_opt_val=='commented') { echo 'checked'; } ?>>
              Most Commented Posts<br/>
              <input type="radio" name="<?php echo $type_opt_name; ?>" value='recent' <?php if($type_opt_val=='recent') { echo 'checked'; } ?>>
              Recent Posts<br/>
              <input type="radio" name="<?php echo $type_opt_name; ?>" value='recent-comments' <?php if($type_opt_val=='recent-comments') { echo 'checked'; } ?>>
              Recent Comments<br/>
              <input type="radio" name="<?php echo $type_opt_name; ?>" value='userspecified' <?php if($type_opt_val=='userspecified') { echo 'checked'; } ?>>
              Specific Posts:
              <input type="text" name="<?php echo $user_specified_posts_opt_name; ?>" value="<?php echo $user_specified_posts_opt_val; ?>" size="20">
              (comma separated, for example: "1, 2, 43, 17")<br/></td>
          </tr>
          <tr valign="top">
            <th scope="row">RSS Overwriting Settings:</th>
            <td>You may elect to display the contents of RSS feeds instead of selective post filters above. <br />
              <?php $phpver=phpversion();$phpmaj=$phpver[0];
      if($phpmaj<PHPREQ){?>
              Use of these options currently requires php version <?php echo PHPREQ;?>. Your current version is <?php echo $phpver;?>.<br /></td>
            <?php }else{ ?>
            <br />
            <input type="radio" name="<?php echo $rss_opt_name; ?>" value='norss' <?php if($rss_opt_val=='norss'){echo 'checked';} ?> >
            No overwrite: Use setting above<br/>
            <input type="radio" name="<?php echo $rss_opt_name; ?>" value='entries' <?php if($rss_opt_val=='entries'){echo 'checked';} ?>>
            Use contents of Entries RSS feed <br/>
            <input type="radio" name="<?php echo $rss_opt_name; ?>" value='comments' <?php if($rss_opt_val=='comments'){echo 'checked';} ?>>
            Use contents of Comments RSS feed<br/>
            <input type="radio" name="<?php echo $rss_opt_name; ?>" value='external' <?php if($rss_opt_val=='external'){echo 'checked';} ?>>
            Use External RSS feed<br/>
            External RSS Feed Url: <input type="text" name="<?php echo $ext_rss_name; ?>" value="<?php echo $ext_rss_val; ?>" size="20" />
            Number of entries to display: <input type="text" name="<?php echo $ext_rss_num_name; ?>" value="<?php echo $ext_rss_num_val; ?>" size="2" />
    
            </td>
            <?php } ?>
          </tr>
          <tr valign="top">
            <th scope="row">Category Filter:</th>
            <td> Select the categories to include.  Select one or more categories to restrict post selection to those categories.<br />
              If no category is selected, all categories are included  (Multiple selection)<br />
              <select style="height: auto;" name="<?php echo $category_filter_opt_name; ?>[]" multiple="multiple">
                <?php
    			$categories =  get_categories(array('hide_empty' => false));
    			if($categories!=null) {
    				foreach ($categories as $cat) {
    					if(in_array($cat->cat_ID, $category_filter_val))
    						$selected = 'selected="selected"';
    					else
    						$selected = '';
    
    					$option = '<option value="'.$cat->cat_ID.'" '.$selected.'>';
    					$option .= $cat->cat_name;
    					$option .= ' ('.$cat->category_count.')';
    					$option .= '</option>';
    					echo $option;
    				}
    			}
        ?>
              </select></td>
          </tr>
          <tr valign="top">
            <th scope="row">Number of Posts:</th>
            <td><input type="text" name="<?php echo $num_posts_opt_name; ?>" value="<?php echo $num_posts_opt_val; ?>" size="2">
              posts </td>
          </tr>
          <tr valign="top">
            <th scope="row">Ticker Length:</th>
            <td> When an excerpt is not set for a post, an excerpt is generated by News-Ticker.<br />
              Enter how many characters long the auto-excerpt should be.<br />
              First
              <input type="text" name="<?php echo $auto_excerpt_length_opt_name; ?>" value="<?php echo $auto_excerpt_length_opt_val; ?>" size="3">
              characters </td>
          </tr>
          <tr valign="top">
            <th scope="row">Ticker Speed:</th>
            <td>The speed of ticker transition.<br />
              <select name="<?php echo $ticker_speed_opt_name; ?>" value="<?php echo $ticker_speed_opt_val; ?>">
                <?php for($j="1"; $j<="10";$j++){
                   if($j==$ticker_speed_opt_val){
    		 echo "<option value='$j' selected='selected'>$j</option>";
    	       }else{
    		 echo "<option value='$j'>$j</option>";
    	       }
           }?>
              </select> (Seconds)</td>
          </tr>
          <tr valign="top">
            <th scope="row">Ticker Timeout:</th>
            <td>The time between ticker transitions.<br />
              <select name="<?php echo $ticker_timeout_opt_name; ?>" value="<?php echo $ticker_timeout_opt_val; ?>">
                <?php for($i="1"; $i<="10";$i++){
                   if($i==$ticker_timeout_opt_val){
    		 echo "<option value='$i' selected='selected'>$i</option>";
    	       }else{
    		 echo "<option value='$i'>$i</option>";
    	       }
           }?>
              </select> (Seconds)</td>
          </tr>
          <tr valign="top">
            <th scope="row">Ticker Animation:</th>
            <td> Select the ticker animation.<br />
              <select name="<?php echo $ticker_anim_opt_name; ?>" value="<?php echo $ticker_anim_opt_val; ?>">
                <option value="fade" <?php if($ticker_anim_opt_val=='fade'){echo "selected='selected'";} ?>>Fade</option>
                <option value="fadeZoom" <?php if($ticker_anim_opt_val=='fadeZoom'){echo "selected='selected'";} ?>>Fade and Expand</option>
                <option value="scrollUp" <?php if($ticker_anim_opt_val=='scrollUp'){echo "selected='selected'";} ?>>Scroll up</option>
                <option value="scrollDown" <?php if($ticker_anim_opt_val=='scrollDown'){echo "selected='selected'";} ?>>Scroll down</option>
                <option value="scrollLeft" <?php if($ticker_anim_opt_val=='scrollLeft'){echo "selected='selected'";} ?>>Scroll left</option>
                <option value="scrollRight" <?php if($ticker_anim_opt_val=='scrollRight'){echo "selected='selected'";} ?>>Scroll right</option>
              </select></td>
          </tr>
          <tr valign="top">
            <th scope="row">Ticker Height:</th>
            <td> Enter the ticker Height.<br />
              <input type="text" name="<?php echo $ticker_ht_opt_name; ?>" value="<?php echo $ticker_ht_opt_val; ?>" size="3">
              pixels </td>
          </tr>
        </table>
        <hr />
        <p class="submit">
          <input type="submit" name="Submit" value="<?php _e('Update Options', 'ticker_trans_domain' ) ?>" />
        </p>
      </form>
    </div>
    <?php
    
    }
    
    function ticker_get_plugin_root() {
    	return dirname(__FILE__).'/';
    }
    function ticker_get_plugin_web_root(){
    	$site_url = get_option('siteurl');
    
    	$pos = ticker_strpos_nth(3, $site_url, '/');
    	$plugin_root = ticker_get_plugin_root();
    	//PHP 5 only
    	//$plugin_dir_name = substr($plugin_root, strrpos($plugin_root, '/', -2)+1); //-2 to skip the trailing '/' on $plugin_root
    	//PHP 4 workaround
    	$plugin_dir_name = substr($plugin_root, strrpos(substr($plugin_root, 0, strlen($plugin_root)-2), DIRECTORY_SEPARATOR)+1); //-2 to skip the trailing '/' on $plugin_root
    	if($pos===false)
    		$web_root = substr($site_url, strlen($site_url));
    	else
    		$web_root = '/' . substr($site_url, $pos);
    	if($web_root[strlen($web_root)-1]!='/')
    		$web_root .= '/';
    	$web_root .= 'wp-content/plugins/' . $plugin_dir_name;
    	return $web_root;
    }
    
    function ticker_strpos_nth($n, $haystack, $needle, $offset=0){
    	$needle_len = strlen($needle);
    	$hits = 0;
    	while($hits!=$n) {
    		$offset = strpos($haystack, $needle, $offset);
    		if($offset===false)
    			return false;
    		$offset += $needle_len;
    		$hits++;
    	}
    	return $offset;
    }
    ?>

درباره‌ی این موضوع



برچسب‌ها

هیچ برچسبی نیست.