カテゴリー: Vicuna

  • wp.VicunaをTheme-Check

    wp.Vicuna 1.5.9は5年以上前のテーマですので最新のwordpressの機能には対応していません。
    非推奨になってしまったタグや関数などもたくさんあるので、Theme-Checkプラグインを使ってチェックしていきます。
    (さらに…)

  • php splitは非推奨

    debugモードにしたらエラーが出たのでメモ。
    wp.vicuna functons.php
    361,449
    $arr_content = split("\n", $content);

    split
    array split ( string $pattern , string $string [, int $limit = -1 ] )
    string を、正規表現によって配列に分割します。

    警告
    この関数は PHP 5.3.0 で 非推奨となりました。 この機能を使用しないことを強く推奨します。

    どうやらexplodeを使うのが今回は一番良さそうです。

    361,449
    $arr_content = explode("\n", $content);

  • wp.Vicuna グローバルナビを導入

    wp.Vicuna.Extにはグローバルナビが搭載されていますが
    WordPress純正のものを使いたいので導入してみます。

    functions.php

    まず、functions.phpに以下のコードを追加

    [sourcecode language=”php”]<?php
    //G-Navi
    register_nav_menus();
    ?>[/sourcecode]

    各ページにコードを追加

    index.php
    page.php
    single.php
    archive.php
    category.php
    .etc
    にグローバルナビを表示したい位置に以下のコードを追加。

    [sourcecode language=”php”]<?php wp_nav_menu(); ?>[/sourcecode]

    標準のメニューを新規作成

    WordPress標準のメニューをwordpressコントロールパネルにて新規作成(外観→メニュー)

    cssを追加

    cssでお好みに装飾
    以下style-flat用

    [sourcecode language=”php”]body.gt ul.menu {
    margin-bottom: 0;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    }
    body.eye-h ul.menu {
    width: 100%;
    position: absolute;
    left: 0;
    bottom: 0;
    }
    ul.menu {
    margin: 0 0 30px 0;
    padding: 0;
    border: 1px solid #eee;
    line-height: 1;
    list-style-type: none;
    background-color: #fff;

    }
    ul.menu li {
    margin: 0;
    padding: 0;
    float: left;
    /*
    width: 110px;
    */
    text-align: center;
    }
    ul.menu li a {
    border-right: 1px solid #eee;
    padding: 8px 20px;
    display: block;
    position: relative; /* for IE6 */
    color: #333;
    background-color: #fff;
    text-decoration: none;
    }
    ul.menu li a:hover,
    ul.menu li.current a {
    color: #fff;
    background-color: #333;
    }
    ul.menu {
    _height: 1px;
    min-height: 1px;
    /*
    height: 1px;
    overflow: hidden;
    */
    }
    ul.menu:after {
    height: 0;
    visibility: hidden;
    content: ".";
    display: block;
    clear: both;
    }[/sourcecode]

    参考リンク
    WordPressのカスタムメニューを使用してグローバルナビゲーションを作成する

  • wp.Vicunaにパンくずリスト設置

    wp.Vicuna 1.5.9のパンくずリストはカスタム投稿タイプに対応していないので新たにパンくずリスト(breadcrumb/topicpath)を設置します。

    すべてのページで使えるように作ってみました。

    使い方

    以下のコードをfunctions.phpに追加する。

    require_once(dirname(__FILE__).’/breadcrumb.php’);

    breadcrumb.phpをテーマフォルダにアップロード。

    テンプレートのお好みの位置に<?php breadcrumb(); ?>を追加。

    breadcrumb.php

    [sourcecode language=”php”]<!–?php function breadcrumb($divOption = array("class" =–> "topicPath")){
    wp_reset_query();

    $get_link_html = function ($url, $title) {
    return ‘<a href="’.$url.’">’.$title.'</a>’;
    };
    $get_current_html = function ($title) {
    return ‘<span>’.$title.'</span>’;
    };

    $s_str = ‘?>?’;

    global $post;
    $str =”;
    if(!is_admin()){ /* !is_admin は管理ページ以外という条件分岐 */
    $tagAttribute = ”;
    foreach($divOption as $attrName => $attrValue){
    $tagAttribute .= sprintf(‘ %s="%s"’, $attrName, $attrValue);
    }
    $str.= ‘<p’. $tagAttribute .’>’;
    $str.= $get_link_html(home_url(),’Home’);
    $cpt = get_post_types(array(‘_builtin’ => false));
    if(is_front_page()){

    } elseif(is_home()){
    $str.=$s_str;
    $str.= $get_current_html(wp_title(”,false));
    } elseif (is_singular($cpt) && $cpt!=FALSE) { //カスタム投稿の個別記事ページ
    $pt=get_post_type();
    $str.=$s_str;
    $str.= $get_link_html(get_post_type_archive_link($pt), get_post_type_object($pt)->label);
    $str.=$s_str;
    $str.= $get_current_html(get_the_title());
    } elseif(is_category()){ //カテゴリーのアーカイブページ
    $cat = get_queried_object();
    if($cat -> parent != 0){
    $ancestors = array_reverse(get_ancestors( $cat -> cat_ID, ‘category’ ));
    foreach($ancestors as $ancestor){
    $str.= $s_str;
    $str.=$get_link_html(get_category_link($ancestor),get_cat_name($ancestor));
    }
    }
    $str.=$s_str;
    $str.= $get_current_html($cat -> name);
    } elseif(is_single()){ //ブログの個別記事ページ
    $categories = get_the_category($post->ID);
    $cat = $categories[0];
    if($cat -> parent != 0){
    $ancestors = array_reverse(get_ancestors( $cat -> cat_ID, ‘category’ ));
    foreach($ancestors as $ancestor){
    $str.= $s_str;
    $str.=$get_link_html(get_category_link($ancestor),get_cat_name($ancestor));
    }
    }
    $str.= $s_str;
    $str.= $get_link_html(get_category_link($cat -> term_id),$cat-> cat_name);
    $str.= $s_str;
    $str.= $get_current_html($post -> post_title);
    } elseif(is_page()){ //固定ページ
    if($post -> post_parent != 0 ){
    $ancestors = array_reverse(get_post_ancestors( $post->ID ));
    foreach($ancestors as $ancestor){
    $str.= $s_str;
    $str.=$get_link_html(get_permalink($ancestor),get_the_title($ancestor));
    }
    }
    $str.= $s_str;
    $str.= $get_current_html($post -> post_title);
    } elseif(is_attachment()){ //添付ファイルページ
    $str.= $s_str;
    $str.= $get_current_html($post -> post_title);
    } elseif(is_date()){ /* 日付アーカイブ */
    $year=get_query_var(‘year’);
    $monthnum=get_query_var(‘monthnum’);
    $day=get_query_var(‘day’);
    if(is_day()){ /* 日別アーカイブ */
    $str.= $s_str;
    $str.= $get_link_html(get_year_link($year),get_post_time(‘Y’));
    $str.= $s_str;
    $str.= $get_link_html(get_month_link($year, $monthnum),get_post_time(‘F’));
    $str.= $s_str;
    $str.= $get_current_html(get_post_time(‘js’));
    } elseif(is_month()){ /* 月別アーカイブ */
    $str.= $s_str;
    $str.= $get_link_html(get_year_link($year),get_post_time(‘Y’));
    $str.= $s_str;
    $str.= $get_current_html(get_post_time(‘F’));
    } elseif(is_year()){ /* 年別アーカイブ */
    $str.= $s_str;
    $str.= $get_current_html(get_post_time(‘Y’));
    }
    } elseif(is_search()){ //検索結果表示ページ
    $str.= $s_str;
    $str.= $get_current_html(‘「’.get_search_query().’」で検索した結果’);
    } elseif(is_author()){ //投稿者のアーカイブページ
    $author= get_query_var(‘author’);
    $str.= $s_str;
    $str.=$get_current_html(‘投稿者 : ‘. get_the_author_meta(‘display_name’, $author));
    } elseif(is_tag()){ //タグのアーカイブページ
    $str.= $s_str;
    $str.= $get_current_html(‘タグ : ‘. single_tag_title( ” , false ));
    } elseif(is_404()){ //404 Not Found ページ
    $str.= $s_str;
    $str.= $get_current_html(‘404 Not found’);
    } elseif ( is_post_type_archive() ) {
    $posttype = get_post_type();
    $str.= $s_str;
    $str.= $get_current_html(post_type_archive_title(‘None’, false));
    } else{ //その他
    $str.= $s_str;
    $str.= $get_current_html(wp_title(”,false));
    }
    $str.= ‘

    ‘;
    }
    echo $str;
    // クエリをリセット
    wp_reset_query();
    }
    ?>[/sourcecode]

  • WordPressにFavicon設置

    WordPressにFavicon設置

    WordPressにFavicon設置するには色々ありますが、今回はfunctions.phpを編集する方法とheader.phpを編集する方法の2種類を紹介します。

    favicon画像を制作したら、ルートディレクトリにfavicon.icoをアップロードする。

    方法1
    functions.phpに以下のコードを追加

    [sourcecode language=”php”]function add_favicon_link(){
    echo ‘ <link href="’.home_url().’/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon" />’;
    echo "\n";
    echo ‘ <link href="’.home_url().’/favicon.ico" rel="icon" type="image/vnd.microsoft.icon" />’;
    }
    add_action(‘wp_head’, ‘add_favicon_link’);
    [/sourcecode]

    方法2
    header.phpの<head>~</head>の間に以下のコードを追加

    [sourcecode language=”html”] <link href="<?php echo home_url(); ?>/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon" />
    <link href="<?php echo home_url(); ?>/favicon.ico" rel="icon" type="image/vnd.microsoft.icon" />
    [/sourcecode]

    shortcut iconのみでも効果はありますが、shortcut iconとicon両方指定する方がいいです。