忍者ブログ
17 March

ウジェットに記述したショートコードが効かない

add_filter('widget_text', 'do_shortcode');


なんと!ショートコードを効かすにはfunctions.phpに記述しなければいけませんでした!
こんなのデフォルトで付いてていいんじゃないのおおお????
普段なんらかのプラグインを入れて、説明文にはショートコードをウジェットにいれるとか
普通にかいてあるので、本当は自分で指定しなきゃいけないってしりませんでした。

だから何故動作しないのか無駄に悩むことになった!!!!!!!
PR
21 January

現在のカテゴリ、タグ、タクソノミーの色んな値を取得する

http://blog.ks-product.com/wrodpress-get-current-term/

/*
	アーカイブページで現在のカテゴリー・タグ・タームを取得する
*/
function get_current_term(){

	$id;
	$tax_slug;

	if(is_category()){
		$tax_slug = "category";
		$id = get_query_var('cat');	
	}else if(is_tag()){
		$tax_slug = "post_tag";
		$id = get_query_var('tag_id');	
	}else if(is_tax()){
		$tax_slug = get_query_var('taxonomy');	
		$term_slug = get_query_var('term');	
		$term = get_term_by("slug",$term_slug,$tax_slug);
		$id = $term->term_id;
	}

	return get_term($id,$tax_slug);
}


//カテゴリ・タグ・カスタムタクソノミー オブジェクトを取得 $term = get_current_term(); //以下は必要に応じて記述 echo $term->name; //名前を表示 echo $term->slug; //スラッグを表示 echo $term->description; //説明文を表示 echo $term->count; //投稿数を表示


例)現在のカテゴリー名を取得
<p>
<?php $term = get_current_term(); ?>
<?php echo $term->name; ?>
</p>


カテゴリ名を取得しようと調べたら、1行で終わらないのばかりで面倒っておもった。
そしたらまとめてくれている人がいたので、こんどからコレを利用しようとおもう。
20 January

phpファイルinclude と WPの空検索結果がおかしい

http://morilog.com/wordpress/tips/empty_search_redirect/


WPの検索欄で空検索をしたら、固定ページ本体と投稿ページアーカイブ(float並び)が合わさって、レイアウトくずれていた。
昔作ったWPサイトで空検索してみたら、トップページが表示された。
検索範囲を広げるSearch everything で固定ページを除外してみても、固定ページが空検索ででてくる。なんなの・・・。
投稿だけが全部でてくるなら、たまにみかける検索結果だからいいけど、固定もまざってレイアウトグチャぐちゃは困る
調べた結果、WP4.0から挙動がかわったらしい。
昔作ったWPサイトはまだ3.9だった。

空検索した結果を変更したい。
空検索したらトップページのphpを読み込むことにした。
http://webcre-archive.com/2012/09/14/wordpress_search_no_keywords/

function search_no_keywords() {
    if (isset($_GET['s']) && empty($_GET['s'])) {
        include(STYLESHEETPATH . '/home.php');
        exit;
    }
}
add_action('template_redirect', 'search_no_keywords');


子テーマだとTEMPLATEPATHでは上手くいかない!STYLESHEETPATHで解決。ファイル読み込み | WordPress
http://wptheme.monochrome-photo.info/?p=268

最初、トップページphpよみこまねーぞ!って思ったら、子テーマと親テーマではパスが違うらしい。ホームやサイトルートURL取得するタグと同じで子テーマ用があった。

Show Current Template

このプラグイン最高です。子テーマテンプレ読み込んでないじゃんって分かったのも、コレ使ってたからです。adminバーに現在のページで読み込まれてるテンプレphpが表示されます。
どのphpを修正したらいいかとか、オリジナルテンプレが多いテーマや初めて見るテーマで非常に役に立ちます。
20 January

the_category で特定カテゴリーを除外したい

カテゴリー出力で特定のカテゴリーを除外したい
http://web-taiyo.com/works/110824.html


function the_category_filter($thelist,$separator=', ') {
	if(!defined('WP_ADMIN')) {
		$exclude = array('カテゴリー名','カテゴリー名','カテゴリー名');
		$cats = explode($separator,$thelist);
		$newlist = array();
		foreach($cats as $cat) {
			$catname = trim(strip_tags($cat));
			if(!in_array($catname,$exclude))
				$newlist[] = $cat;
		}
		return implode($separator,$newlist);
	} else
		return $thelist;
}
add_filter('the_category','the_category_filter',10,2);
14 January

WPインストールディレクトリを1階層下げたい かつ表示されるのは上位ディレクトリ

http:://*****/wp/ というフォルダにインストールしたけど、
http:://*****/ というURLにしたいっていうお話はたくさんある。

私は反対に
http:://*****/ にぶちまけたけど、
http:://*****/wp/ に階層下げて移して なおかつ
http:://*****/ で表示されるようにしたい


WordPress を専用ディレクトリに配置する


ルートディレクトリにインストール済みの場合

http://wpdocs.sourceforge.jp/WordPress_%E3%82%92%E5%B0%82%E7%94%A8%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AB%E9%85%8D%E7%BD%AE%E3%81%99%E3%82%8B

WordPress をルートディレクトリにインストール済みの場合、WordPress ファイルを専用ディレクトリへ移動するには次のようにします(ディレクトリ構成例も参照)。

(注意) 作業の順番を間違えたり飛ばしたりすると、サイトにアクセスできなくなることがあります。一つずつ確実に進めましょう。

  1. WordPress のコアファイルを置くための、新しいディレクトリを作成する(この手順では仮に wp とする)。
    (linux の場合、www ディレクトリで mkdir wp を実行。十中八九、作成した wp ディレクトリで "chown apache:apache" することになるでしょう)
  2. 管理パネル 設定 > 一般設定パネルを開く
  3. WordPress のアドレス (URL) 欄を、新しい WordPress コアファイルの URL に変更する。例:
    WordPress のアドレス (URL): http://example.com/wp
  4. サイトのアドレス (URL) 欄を、ルートディレクトリの URL に変更する。例:
    サイトアドレス (URL): http://example.com
  5. 変更を保存をクリック。 (この時点ではエラーメッセージが出ても気にせず、サイトを表示しようとしないでください。「ファイルが存在しない」というメッセージが出るはずです)
  6. WordPress コアファイルを、手順 1 で作成した新しいディレクトリ(「WordPress のアドレス」)へ移動する
  7. WordPress ディレクトリにある index.php  .htaccess ファイルを、手順 4 で設定したサイトのルートディレクトリ(「サイトのアドレス」)へコピーする(移動ではなくコピーすることに注意)。
    • パーマリンク設定を使っていない場合、htaccess ファイルは存在しません。
    • WordPress を Windows (IIS) サーバー上で動かしており、パーマリンク設定を使っている場合は、htaccess ファイルの代わりにweb.config ファイルが WordPress のディレクトリにあるはずです。上記の通り、index.php をルートディレクトリに(移動ではなく)コピーし、web.config ファイルをルートディレクトリに(コピーではなく)移動してください。
    • 存在するはずの .htaccess ファイルが見えないときは、FTPクライアント隠しファイルの表示設定を行なうこと。
  8. ルートディレクトリの index.php ファイルをテキストエディタで開く
  9. 次の修正を行ない、ファイルを保存する。
    修正前:
    require('./wp-blog-header.php');
    修正後: WordPress コアファイルの新ディレクトリ名を使います。
    require('./wp/wp-blog-header.php');
  10. 新しい URL からログインする。例えば http://example.com/wp/wp-admin/ など。
  11. パーマリンクを設定している場合、パーマリンク設定パネルを開き、パーマリンク構造を更新してください。.htaccess に適切なパーミッションを設定してあれば、WordPress が自動で .htaccess を更新します。もし WordPress が .htaccess を書き換えられない場合、新しいリライトルールが表示されるので、(メインの index.php ファイルと同じディレクトリの).htaccess ファイル内に手動でコピーしてください。



9、 のところでindex.phpを開くと require((_FILE) '/wp-blog~~~~');
みたいな何か余計なのがくっついていた。
ここを残したまま上記のようにフォルダ名を付け加えたらエラーログがでた。
上記とまったく同じにするために余計な FILE~ みたいなのを消したらちゃんと表示された

ページを確認してみて正常に表示されないときは、とりあえずパーマリンク設定をそのまま保存しなおしてみる。白いページになったのでやったら直った。

最初にブログを作ってルートディレクトリにwpをぶちまけたが、
あとでショップを作りたくなって別のWPをインストールしなければならなくなった。
welcartはブログと共存できるが色々とめんどいし、welcartのせいで色々と制約がでる。
もう考えるのも面倒だしwpを分けたほうが管理も楽。
メディアライブラリが商品画像で汚れまくるのでわけたほうがわかりやすい。

しかしwpの中の別フォルダにwpとなると、パーマリンクの関係でリダイレクトされてうまくいかないらしい。それもそのはず、wpは末尾のURLが本物であって途中が変わってもリンクされるから。
ではマルチサイト化をしようか、と思ったらwelcartじゃマルチサイトに対応していない。
不具合がでたり動かなかったりしたらサポートに聞いても対応外。
結局ルートディレクトリに2つのwpフォルダを作り、一方をルートディレクトリURLに
みせかけるという方法にする。