انجمن


شماره صفحات بدون استفاده از پلاگین  (۱۱ نوشته)

  • ناصر عبدیلر

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

    خیلی از دوستان با پلاگین های شماره صفحات مشکل دارن یکی از اونها خودم هستم :دی

    من خودم توی سفارش کارهایی که انجام می دم به جای استفاده از پلاگین برای شماره گذاری صفحات از این که استفاده کردم ، این کد رو به حرفه ای ها پیشنهاد می کنم چون برای افراد مبتدی جز دردسر چیز دیگه ای نداره .

    با این روش شما هنگام طراحی قالب سایتتون می تونید به راحتی برای این پیج نامبر هم استیل بزنید یه نمونه کار براتون میزارم ، http://www.apptrackr.ir/category/iphone/ این آخرین پروژه خودم بوده ;)

    حالا آموزش رو شروع می کنیم ، به functions.php برید و اون رو با یک ادیتور ویرایش کنید و کد زیر رو در انتهای اون اضافه کنید .

    function wp_corenavi() {
      global $wp_query, $wp_rewrite;
      $pages = '';
      $max = $wp_query->max_num_pages;
      if (!$current = get_query_var('paged')) $current = 1;
      $a['base'] = ($wp_rewrite->using_permalinks()) ? user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . 'page/%#%/', 'paged' ) : @add_query_arg('paged','%#%');
      if( !empty($wp_query->query_vars['s']) ) $a['add_args'] = array( 's' => get_query_var( 's' ) );
      $a['total'] = $max;
      $a['current'] = $current;
    
      $total = 1; //1 - display the text "Page N of N", 0 - not display
      $a['mid_size'] = 5; //how many links to show on the left and right of the current
      $a['end_size'] = 1; //how many links to show in the beginning and end
      $a['prev_text'] = '« Previous'; //text of the "Previous page" link
      $a['next_text'] = 'Next »'; //text of the "Next page" link
    
      if ($max > 1) echo '<div class="navigation">';
      echo $pages . paginate_links($a);
      if ($max > 1) echo '</div>';
    }

    حال نوبت فراخوای این کد می رسه برای این کار کد زیر رو جایی که می خوایید شماره صفحات نشون داده بشه بزارید .

    <?php if (function_exists('wp_corenavi')) wp_corenavi(); ?>

    حالا نوبت به استایل بندی می رسه که من دقیقه به استایل سایت اپــ ترکر رو می زارم براتون .

    .navigation	{
    
    }
    .navigation a	{
    	text-decoration:none;
    	color:#666;
    
    }
    
    .navigation .page-numbers	{
    	border:1px solid #b6b6b6;
    	padding:5px 7px;
    	-moz-border-radius:3px;
    	-webkit-border-radius:3px;
    	border-radius:3px;
    	margin:2px;
    	background:url(http://www.apptrackr.ir/wp-content/themes/images/archiv/page-numbers.png) center center;
    	color:#666;
    	text-shadow:1px 1px 0 #FFF;
    
    }
    
    .navigation .current ,
    .navigation .page-numbers:hover	{
    	border:1px solid #535353;
    	padding:5px 7px;
    	-moz-border-radius:3px;
    	-webkit-border-radius:3px;
    	border-radius:3px;
    	margin:2px;
    	background:url(http://www.apptrackr.ir/wp-content/themes/images/archiv/current.png) center center;
    	color:#FFF;
    	text-shadow:1px 1px 0 #000;
    
    }

    شاد و موفق باشید

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Parsa - omid0098 - amirsaam - امین باقیات - Zirmizi - parsitak - سایت تفریحی
  • omid0098

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

    کد فانکشین مشکل داره.
    وقتی به فانکشین اضاف می کنم ؛ بالای سایت کدها رو نشون میده و شماره صفحات هم قرار نمیگیره

  • Parsa

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

    omid0098 گفت:
    کد فانکشین مشکل داره.
    وقتی به فانکشین اضاف می کنم ؛ بالای سایت کدها رو نشون میده و شماره صفحات هم قرار نمیگیره

    كد را بايد داخل تگ php قرار بديد

    <?php
    
    ?>
    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    omid0098 - امین باقیات
  • omid0098

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

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

    http://forum.wp-persian.com/topic/16466

  • omid0098

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

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

    <center>

    <?php if (function_exists('wp_corenavi')) wp_corenavi(); ?>

    </center>

  • ناصر عبدیلر

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

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

    <center>

    <?php if (function_exists('wp_corenavi')) wp_corenavi(); ?>

    </center>

    از کد زیر استفاده کنید

    .navigation	{
    	text-align:center;
    
    }
    
    .navigation a	{
    	text-decoration:none;
    	color:#666;
    
    }
    
    .navigation .page-numbers	{
    	border:1px solid #b6b6b6;
    	padding:5px 7px;
    	-moz-border-radius:3px;
    	-webkit-border-radius:3px;
    	border-radius:3px;
    	margin:2px;
    	background:url(http://www.apptrackr.ir/wp-content/themes/apptrackr/images/archiv/page-numbers.png) center center;
    	color:#666;
    	text-shadow:1px 1px 0 #FFF;
    
    }
    
    .navigation .current ,
    .navigation .page-numbers:hover	{
    	border:1px solid #535353;
    	padding:5px 7px;
    	-moz-border-radius:3px;
    	-webkit-border-radius:3px;
    	border-radius:3px;
    	margin:2px;
    	background:url(http://www.apptrackr.ir/wp-content/themes/apptrackr/images/archiv/current.png) center center;
    	color:#FFF;
    	text-shadow:1px 1px 0 #000;
    
    }

    omid0098 گفت:
    کد فانکشین مشکل داره.
    وقتی به فانکشین اضاف می کنم ؛ بالای سایت کدها رو نشون میده و شماره صفحات هم قرار نمیگیره

    مشکل از فانکشن شماست ، چون قبلاً یه بار بسته شده بوده ?>

    پارسا جان توی پی اچ پی اگه تگ بسته نشه سرعت کامپایل بالا میره ، من اینو از خیلی ها شنیدم خودم هم فانکشن هامو نمی بندم

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

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

    پارسا جان توی پی اچ پی اگه تگ بسته نشه سرعت کامپایل بالا میره ، من اینو از خیلی ها شنیدم خودم هم فانکشن هامو نمی بندم

    البته با توجه به كاركرد فكر كنم فقط تگ آخر رو ميتونيد نبنديد
    مثلا در برنامه كه نوشتم
    1500 خط داره. اگر تگ php اولي رو نبندم مسلما كد خطا ميده!

    مخصوصا زماني كه تركيبي از html داشته باشه

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

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

    parselearn گفت:

    البته با توجه به كاركرد فكر كنم فقط تگ آخر رو ميتونيد نبنديد
    مثلا در برنامه كه نوشتم
    1500 خط داره. اگر تگ php اولي رو نبندم مسلما كد خطا ميده!

    مخصوصا زماني كه تركيبي از html داشته باشه

    دقیقاً درسته اگه ترکیبی از html باشه فقط باید تگ آخر رو نبندی ولی در فانکشن شما همش php داری و در اول یه تگ php باز می کنی تنا آخر اون رو ادامه می دی و در آخر اونو نمی بندی

    اینم کد نمونه فانکش قالب من

    <?php
    
    	function twentyten_widgets_init() {
    
    	// Area 1, located at the top of the sidebar.
    
    	register_sidebar( array(
    
    		'name' => __( 'منوی بالای سایت'),
    
    		'id' => 'top-menu',
    
    		'description' => __( 'برای فعال سازی منوی بالای سایت ، باید اول یک فهرست بسازید و بعد ان را به اینجا اضافه کنید ، برای راه اندازی کامل راهنمای قالب رو بخوانید '),
    
    		'before_widget' => '',
    
    		'after_widget' => '',
    
    		'before_title' => '<!--',
    
    		'after_title' => '-->',
    
    	) );
    
    	register_sidebar( array(
    
    		'name' => __( 'منوی ورود و خروج'),
    
    		'id' => 'login',
    
    		'description' => __( 'فرم ورود در ستون کناری را به اینجا اضافه کنید'),
    
    		'before_widget' => '',
    
    		'after_widget' => '',
    
    		'before_title' => '<h3>',
    
    		'after_title' => '</h3>',
    
    	) );
    
    	register_sidebar( array(
    
    		'name' => __( 'منوی سمت راست'),
    
    		'id' => 'menu',
    
    		'description' => __( 'ابزارک های مورد نظر را اینجا وارد کنید ، لطفا عنوان را وارد کنید'),
    
    		'before_widget' => '<div class="imenu">',
    
    		'after_widget' => '</div><div class="footer"></div></div>',
    
    		'before_title' => '<div class="titel"><h3>',
    
    		'after_title' => '</h3></div><div class="bg">',
    
    	) );
    
    	register_sidebar( array(
    
    		'name' => __( 'نویسندگان'),
    
    		'id' => 'author-list',
    
    		'description' => __( 'ابزارک KNR Author List را به اینجا اضافه کنید .'),
    
    		'before_widget' => '',
    
    		'after_widget' => '',
    
    		'before_title' => '<!--',
    
    		'after_title' => '-->',
    
    	) );
    
    	register_sidebar( array(
    
    		'name' => __( 'برترین پست ها'),
    
    		'id' => 'top-post',
    
    		'description' => __( 'ابزارک Popular posts را به اینجا اضافه کنید .'),
    
    		'before_widget' => '',
    
    		'after_widget' => '',
    
    		'before_title' => '<!--',
    
    		'after_title' => '-->',
    
    	) );	
    
    	register_sidebar( array(
    
    		'name' => __( 'لینک دوستان'),
    
    		'id' => 'f-link',
    
    		'description' => __( 'ابزارک پیوندها را در اینجا اضافه کنید .'),
    
    		'before_widget' => '',
    
    		'after_widget' => '',
    
    		'before_title' => '<!--',
    
    		'after_title' => '-->',
    
    	) );
    
    	register_sidebar( array(
    
    		'name' => __( 'برترین تگ ها در فوتر'),
    
    		'id' => 'tag',
    
    		'description' => __( 'ابزارک مورد نظر را اضافه کنید'),
    
    		'before_widget' => '',
    
    		'after_widget' => '',
    
    		'before_title' => '<!--',
    
    		'after_title' => '-->',
    
    	) );	
    
    }
    
    add_action( 'widgets_init', 'twentyten_widgets_init' );
    
    /* sets predefined Post Thumbnail dimensions */
    
    if ( function_exists( 'add_theme_support' ) ) {
    
       add_theme_support( 'post-thumbnails' );
    
       add_image_size( 's-thumb', 609, 345, true );
    
       add_image_size( 'photo-thumb', 346, 196, true );
    
       add_image_size( 'related-thumb', 30, 30, true );
    
    };
    
    function search_url_rewrite_rule() {
    	if ( is_search() && !empty($_GET['s'])) {
    		wp_redirect(home_url("/search/") . urlencode(get_query_var('s')));
    		exit();
    	}
    }
    add_action('template_redirect', 'search_url_rewrite_rule');

    اگه ببینید اصلاً هیچ php بسته نشده ، خیلی هم خوب کار می کنه

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

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

    با سلام و ادب
    من کد فراخوانی رو به هر طریقی که بلد بودن استفاده کردم اما ارور رو می گیرم.
    محل مربوط به فایل index.php که می باست کد فراخوانی در آن قرار گیرد بدین نحو است:

    <?php
    				if(have_posts()) {
    
    					/* Display navigation to next/previous pages when applicable */
    					if ( theme_get_option('theme_' . (theme_is_home() ? 'home_' : '') . 'top_posts_navigation' ) ) {
    						theme_page_navigation();
    					}
    
    					/* Start the Loop */
    					while (have_posts()) {
    						the_post();
    						get_template_part('content', get_post_format());
    					}
    
    					/* Display navigation to next/previous pages when applicable */
    					if (theme_get_option('theme_bottom_posts_navigation')) {
    						 theme_page_navigation();
    					}
    
    				} else {
    
    					 theme_404_content();
    
    				}
    		    ?>

    ممنون می شوم دوستان راهنمایی ام کنید.

  • NESTED

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

    در اینجا به یه روش دیگه هم گفته شده

    forum.wp-persian.com/topic/16761

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

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

    NESTED گفت:
    در اینجا به یه روش دیگه هم گفته شده

    ممنونم دوست عزیز
    ولی همونجا هم نیاز دارم تا کد رو فراخوانی کنم و باز مشکلم برقراره
    من اون تکه ای از فایل ایندکسم که قراره کد رو توی اون بذارم رو در بالا گذاشتم و به هر نحو انجام میدم ارور داره.

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