[WordPress] WP Page Numbers 外掛設定

WP Page Numbers是個不錯的外掛,套用的步驟也很簡單,詳見外掛介紹
http://wordpress.org/plugins/wp-page-numbers/

不過要在自己的網站上開新頁面做一些特殊用途,又需要用到換頁功能
但是新頁面又和文章不相關時,外掛便不會運作
不過使用一點小方法便可解決這問題

$rows = 200; // 資料筆數
$display_rows = 20; // 每頁顯示20筆資料

// 宣告全域變數
global $max_page; // 最大頁數
$max_page = $rows / $display_rows; // 計算總頁數,並存到$max_page這個變數

// 若沒有使用固定網址時則需要再加入下列兩行
global $paged;
$paged = $_GET['paged'];

// 如果有設定固定網址,可用這種方式取得當前頁碼
$get_currentPage = $wp_query->query_vars['paged'];

 

這樣就可以正常運作了

Leave a comment

[PHP] PHP 5.4 的 session 寫法變革

前陣子把 PHP 升級到5.4後
發現有用到session的程式都爆了

Fatal error: Call to undefined function session_register()

 

google一下
原來是PHP 5.4的session寫法有改變
PHP 5.4 移除了 session_is_registered()  、 session_register()  與 session_unregister()  三支function。
Session 的操作更簡化了一些。

//判斷 Session 是否存在
if( isset($_SESSION['foo']) ) {
    echo 'session is exist';
}

//註冊 Session
$_SESSION['foo'] = 'bar';

//移除 Session
unset($_SESSION['foo']);

 

這樣操作其實更直覺,也不需要額外多記函式(個人很健忘),這三支函式早該移除了。
但是大大小小的舊系統改起來也是不少麻煩
所以另一個做法就是把移除的function在script執行前先定義好:

<?php
if ( !function_exists('session_register') ) {
    function session_register() {
        $args = func_get_args();
        foreach ($args as $key) {
            $_SESSION[ $key ] = $GLOBALS[ $key ];
        }
    }
}

if ( !function_exists('session_is_registered') ) {
    function session_is_registered( $key ) {
        return isset( $_SESSION[ $key ] );
    }
}

if ( !function_exists('session_unregister') ) {
    function session_unregister( $key ){
        unset( $_SESSION[ $key ] );
    }
}

 

這樣就可以相容舊系統了
不過還是比較建議移除舊寫法囉
Reference:http://blog.wu-boy.com/2012/06/what-has-changed-in-php-5-4-x/

One Comment