WordPress On Zencart

WordPress On Zencart を使ってて、パンくずリスト(Breadcrumbs)とページタイトル(title)がどうも、うまく変化していなくて、いつもブログのタイトルだけになってしまっていたので、修正。

includes/languages/japanese/wordpress.php

修正前

if($woz_install){
    $cat_id = htmlspecialchars($_GET[‘cat’],ENT_QUOTES);
    if ( !empty($cat_id) ) {
            // category exclusion
            if ( !stristr($cat,’-‘) )
                $zen_heading_title[] = get_the_category_by_ID($cat_id);
    }

    $p_id = htmlspecialchars($_GET[‘p’],ENT_QUOTES);
    if ( !empty($p_id) ) {
            $zen_heading_title[] = $wpdb->get_var("SELECT post_title FROM $wpdb->posts  WHERE ID = $p_id");
    }

    define(‘NAVBAR_TITLE’, implode(BREAD_CRUMBS_SEPARATOR, $zen_heading_title));
    define(‘WOZ_HOME_ADDRESS’, ‘/?’);
}else{
    define(‘NAVBAR_TITLE’, ‘Error:not found [ABSPATH]’.ABSPATH);
}

修正後

if($woz_install){
    if(isset($_GET[‘cat’])){
    $cat_id = htmlspecialchars($_GET[‘cat’],ENT_QUOTES);
    if ( !empty($cat_id) ) {
            // category exclusion
            if ( !stristr($cat,’-‘) )
                $zen_heading_title[] = get_the_category_by_ID($cat_id);
    }
    }
    if(isset($_GET[‘p’])){
    $p_id = htmlspecialchars($_GET[‘p’],ENT_QUOTES);
    if ( !empty($p_id) ) {
            $zen_heading_title[] = $wpdb->get_var("SELECT post_title FROM $wpdb->posts  WHERE ID = $p_id");
    }
    }
    if(isset($_GET[‘page_id’])){
    $p_id = htmlspecialchars($_GET[‘page_id’],ENT_QUOTES);
    if ( !empty($p_id) ) {
            $zen_heading_title[] = $wpdb->get_var("SELECT post_title FROM $wpdb->posts  WHERE ID = $p_id");
    }
    }

    define(‘NAVBAR_TITLE’, implode(BREAD_CRUMBS_SEPARATOR, $zen_heading_title));
    define(‘WOZ_HOME_ADDRESS’, ‘/?’);
}else{
    define(‘NAVBAR_TITLE’, ‘Error:not found [ABSPATH]’.ABSPATH);
}

タイポくさい気もするんですが、$_GET[‘p’] のところ。
実際のサイトでは、?page_id=*** というふうに $_GET[‘page_id’] を使って、ページIDを表示しているんで、修正前のコードだと、ページタイトルが取得できずに、ブログタイトルだけが、パンくずや、タイトルに送られていたんですね。

そこで、 $_GET[‘page_id’] があった場合は、それをページIDとしてページタイトルを取得するように修正しました。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です