wp.Vicuna 1.5.9は5年以上前のテーマですので最新のwordpressの機能には対応していません。
非推奨になってしまったタグや関数などもたくさんあるので、Theme-Checkプラグインを使ってチェックしていきます。
(さらに…)
カテゴリー: Vicuna
-
wp.Vicunaを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] -
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設置するには色々ありますが、今回は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両方指定する方がいいです。