webarton
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿タイプのURLにカテゴリーを入れたいすみません、追記です。こちらのブログを拝見して、
http://varl.jp/memo/custom-post-type-rss-conditionalWordPressを、静的なサイトでよくある構造にするのは難しいのだなとわかったのですが、
もし「こうしたら?」といったアドバイス頂けるようでしたら嬉しいです。フォーラム: 使い方全般
返信が含まれるトピック: 投稿画面に画像登録用のエリアを設けるにはkvexさん、色々本当にありがとうございます。
そうですよね・・・
・Fileタイプだと、アップロードしたらファイル名しか表示されないから、画像を確認できないのは不便
・画像を表示したいなら、作りこみしなくてはいけない。
・最終的に画像はメディアライブラリにまとめたいが、Fileタイプでアップロードされたものを、メディアライブラリで見られるように作らないといけない。
・altに使うテキストも、画像に付随するように、メディアライブラリに一緒に登録しないといけない。といったことにハードルを感じているので、他にポストしてお答え頂いた、
「メディアライブラリの画像ファイル名から、タイトルか代替テキストを取得するには」
http://ja.forums.wordpress.org/topic/5556?replies=2#post-23157のやり方にして、
・画像は命名則に従って命名し、メディアライブラリに直接アップする
・アップした画像の名前を、記事投稿のカスタムフィールドに入れておくということにしたほうがいいのかなあと思います。
でも、あんまりあちこち行かないで、できれば一箇所で済ませるのがわかりやすいと思うので、もう少し考えてみたいと思います。本当にありがとうございます★
フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿タイプでスラッグ名つきのURLが表示できない今、
'rewrite' => true,と書かなくても、global $wp_rewrite; $wp_rewrite->flush_rules();を書いてあればエラーにならず表示されることに気付きました。
functions.phpにこちらを書いてます。
/* カスタム投稿タイプの追加 */ add_action( 'init', 'create_post_type' ); function create_post_type() { register_post_type( 'tokyo', /* post-type */ array( 'labels' => array( 'name' => __( '東京' ), 'singular_name' => __( '東京' ) ), 'public' => true, 'menu_position' =>5, /* ここから */ 'supports' => array('title','editor','thumbnail', 'custom-fields','excerpt','author','trackbacks', 'comments','revisions','page-attributes') /* ここまで */ ) //array ); //register_post_type global $wp_rewrite; $wp_rewrite->flush_rules(); register_post_type( 'kanagawa', /* post-type */ array( 'labels' => array( 'name' => __( '神奈川' ), 'singular_name' => __( '神奈川' ) ), 'public' => true, 'menu_position' =>6, /* ここから */ 'supports' => array('title','editor','thumbnail', 'custom-fields','excerpt','author','trackbacks', 'comments','revisions','page-attributes') /* ここまで */ ) //array ); //register_post_type $wp_rewrite->flush_rules(); /* ここから */ register_taxonomy( 'tokyo-cat', /* タクソノミーの名前 */ 'tokyo', /* tokyo投稿で設定する */ array( 'hierarchical' => true, /* 親子関係が必要なければ false */ 'update_count_callback' => '_update_post_term_count', 'label' => '東京のカテゴリー', 'singular_label' => '東京のカテゴリー', 'public' => true, 'show_ui' => true ) //array ); //register_taxonomy /* ここまでを追加 */ $wp_rewrite->flush_rules(); /* ここから */ register_taxonomy( 'kanagawa-cat', /* タクソノミーの名前 */ 'kanagawa', /* kanagawa投稿で設定する */ array( 'hierarchical' => true, /* 親子関係が必要なければ false */ 'update_count_callback' => '_update_post_term_count', 'label' => '神奈川のカテゴリー', 'singular_label' => '神奈川のカテゴリー', 'public' => true, 'show_ui' => true ) //array ); //register_taxonomy /* ここまでを追加 */ $wp_rewrite->flush_rules(); } /* カスタム投稿タイプの追加 ここまで */index.phpにこちらを書いてます。
<?php /* カスタム投稿タイプを表示する */ $loop = new WP_Query( array( 'post_type' => 'izu', 'posts_per_page' => 10 ) ); while ( $loop->have_posts() ) : $loop->the_post(); ?> <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> /* カスタム分類を表示 */ <p class="taxonomies"> <?php echo get_the_term_list( $post->ID, 'izu-cat', 'タクソノミー', ', ', '' ); ?> </p> /* コンテンツ */ <div class="custom-post-content"> <?php the_content('続きを読む»'); ?> </div> <?php endwhile; /* カスタム投稿タイプを表示する ここまで */ ?> <?php /* カスタム投稿タイプを表示する */ $loop = new WP_Query( array( 'post_type' => 'east', 'posts_per_page' => 10 ) ); while ( $loop->have_posts() ) : $loop->the_post(); ?> <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> /* カスタム分類を表示 */ <p class="taxonomies"> <?php echo get_the_term_list( $post->ID, 'east-cat', 'タクソノミー', ', ', '' ); ?> </p> /* コンテンツ */ <div class="custom-post-content"> <?php the_content('続きを読む»'); ?> </div> <?php endwhile; /* カスタム投稿タイプを表示する ここまで */ ?>フォーラム: 使い方全般
返信が含まれるトピック: メディアライブラリの画像ファイル名から、タイトルか代替テキストを取kvexさん、sysbirdさん、ありがとうございます。書き方が悪くってほんとにすみません。
おっしゃるとおり、「記事投稿画面で設定した画像ファイル名」に紐づく画像の、タイトルか代替テキストを表示できればと思っています。
メディアライブラリの「タイトル」= post_title ←これを取得したいので、
記事投稿画面で画像ファイル名を「xxx」と設定し、1.post_nameに「xxx_1」という画像ファイル名が入っているので、「xxx_1」の「xxx」だけを取り出して紐付ける
2.post_typeはattachment
3.post_mime_typeはimage/jpegとしたいのですが、
・「xxx_1」の「xxx」だけを取り出す、をまだ調べていない←後で調べます!
・まずは固定値’post_name’ => ‘xxx_1’で取得できるか確認しようとしたが、’post_name’ => ‘xxx_1’が無視されて、’post_type’ => ‘attachment’, ‘post_mime_type’ => ‘image/jpeg’だけを満たした値が取れてしまうという状態です。
フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿タイプでスラッグ名つきのURLが表示できないkvexさん!!!すみません!
global $wp_query; $wp_query->flush_rules();としてみたら、こんどはエラーがこうなってしまって
Fatal error: Call to undefined method WP_Query::flush_rules()
でもそもそもflush_rules()の意味がわからなかったから「flush_rules()」でGoogle検索したら、「$wp_rewrite->flush_rules();」という書き方ばかり出てきたので、こう書き直してみたら、どうやら表示されているんです!
global $wp_rewrite; $wp_rewrite->flush_rules();ただ意味がわかってやったことではないので、これでいいのかよくわからないのですが、エラーにならず「http://ブログのアドレス/カスタム投稿タイプ名/個々のカスタム投稿のスラッグ/」で表示されるんです。
ということは、これで大丈夫なのでしょうか・・・
フォーラム: 使い方全般
返信が含まれるトピック: メディアライブラリの画像ファイル名から、タイトルか代替テキストを取sysbirdさん、ありがとうございます!
実はポストして頂いてすぐに、書いてくださった書き方で試してみたのですが
うまく表示できなかったので、ちゃんとできてから返信しようと思って遅くなりました。
すみません。うまくできなかったのは、私がメディアライブラリに登録している画像は、投稿記事の中で選択していないからなのか、post_nameに0が入っていて、
1.post_nameの画像名を取得する(1枚目にはxxx_1,2枚目にはxxx_2という名前がついていて、xxxは投稿記事の入力画面のカスタムフィールドで入力する値と同一)
2.post_typeはattachment
3.post_mime_typeはimage/jpegこの3つでget_childrenを取得すればよいのだと思ったので、はじめはpost_nameを固定値で
$attachments = get_children(array('post_name' => 'xxx_1', 'post_type' => 'attachment', 'post_mime_type' => 'image/jpeg'));としてみました。でも取得できる値はひとつのはずだったのですが、’post_name’ => ‘xxx_1’が無視されて、’post_type’ => ‘attachment’, ‘post_mime_type’ => ‘image/jpeg’だけを満たした値が取れてしまって、理由がわからずまだ未解決です。
それで、書いてくださったget_post_meta()の部分まで行き着いていないのですが
早く解決させて表示できるようにしたいと思っています。他に解決しなければいけないことができてしまったので、
まずはそちらを片付けてからになってしまうため、今の段階で返信させて頂きました。なんだかつまずいてばっかりで情けないです。
ありがとうございます。フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿タイプでスラッグ名つきのURLが表示できないkvexさん、今日もすみません。ありがとうございます。
そうですよね・・・それもやらないとダメです、ということですよね・・・
自分で読んだときは、register_post_typeを実行しないとメモリの開放のようなことができません、と書いてあるのだと思って、とりあえずそれは置いておこうと思って無視していました。それで、この位置に書いてみたのですが、
Fatal error: Call to a member function flush_rules() on a non-object
となってしまいました。他の位置でも試したのですがエラーになり、「$wp_query->flush_rules();」で調べてみたのですがよくわかりませんでした。
add_action( 'init', 'create_post_type' ); function create_post_type() { register_post_type( 'tokyo', /* post-type */ array( 'labels' => array( 'name' => __( '東京' ), 'singular_name' => __( '東京' ) ), 'public' => true, 'menu_position' =>5, 'rewrite' => true, 'supports' => array('title','editor','thumbnail', 'custom-fields','excerpt','author','trackbacks', 'comments','revisions','page-attributes') ) //array ); //register_post_type $wp_query->flush_rules(); }フォーラム: 使い方全般
返信が含まれるトピック: 個別記事ページなしってありえますか?kvexさん、ありがとうございます!
is_single() で分岐して、シングルページだったらフロントページにリダイレクトする、なるほどそうすればできるんですね。
お客様の意図は、各記事のボリュームが少ないから、一覧表示で記事内容を全部表示して、10件ずつページングしたほうが閲覧者にとって見やすいだろう、ということです。記事個別のページが存在すべきかどうかは、まだお考えになっていないと思います。
全て最終的にはお客様が判断することと認識していますが、リスクがあるならそれをご説明して、その上での判断をして頂けるように心がけています。
ありがとうございました。
フォーラム: 使い方全般
返信が含まれるトピック: パーマリンクを /%category%/%postname%/ と設定することについてumbrella_processさん、ありがとうございます!
カスタム投稿タイプについてのCodexのURLをありがとうございます。
すみません、前回投稿したとき、「カスタム投稿タイプ」を、管理画面のパーマリンク設定の「カスタム構造」のことかと勘違いしていました。意味不明ですみません。カスタム投稿タイプのCodexを読んでみたのですが、一回読んだだけでは悲しいほど理解できなかったので、もう少し時間をかけて読んでみます。
ありがとうございます。
フォーラム: 使い方全般
返信が含まれるトピック: パーマリンクを /%category%/%postname%/ と設定することについてphp-webさん、umbrella_processさん、ありがとうございます!
やっぱり避けたほうがいいですよね・・・
ごめんなさい、お二人に頂いたお答えの中でわからないことがあって、
もしご面倒でなければ教えて頂けないでしょうか。php-webさん、不具合・不都合が起きた場合の対処方法として書いて頂いた「パッチを作る」ですが、どういったパッチを作ることになりそうでしょうか。パッチを作ったことがなく、すみません。
umbrella_processさん、カテゴリは複数選択できますが、記事編集画面のタイトル下にある「パーマリンク」の部分は1つで、2つカテゴリを選んだ場合、どちらかのカテゴリが割り当てられると思います。割り当てられなかったカテゴリ名で投稿を見ようとしても、選ばれたほうのカテゴリ名がついたURLにリダイレクトしたので、複数のパーマリンクが存在することはないのではと思ったのですが、間違いでしょうか。
それからすみません、「普通に、カスタム投稿タイプを使えば近いURL構造になると思います。」という部分がわかりませんでした。カスタム投稿タイプを「/%category%/%postname%/ 」と設定せず、近いURL構造を設定すればOK、ということでしょうか。その場合、どのように設定するのが近いURL構造になりますでしょうか。
わかってなくてすみません。
フォーラム: プラグイン
返信が含まれるトピック: The Events Calendarの過去実績を表示したい思いあまってこちらにも投稿してしまいまして、LVP8さんが助けて下さいました。
http://ja.forums.wordpress.org/topic/5416?replies=8#post-22475こちらの内容で実現できました。
<?php /* Template Name: Category_Event */ get_header(); ?> <div id="main"> <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $posts_per_page = (get_query_var('posts_per_page')) ? get_query_var('posts_per_page') : get_option('posts_per_page'); $currentTime = date('Y-m-d H:i:s', time()+32400); query_posts(array( 'posts_per_page' => $posts_per_page, 'meta_key' => '_EventStartDate', 'meta_compare' => '<=', 'meta_value' => $currentTime, 'orderby' => 'meta_value', 'order' => 'DESC', 'paged' => $paged )); while ( have_posts() ) : the_post(); ?> <?php echo get_post_meta($post->ID, '_EventStartDate', true); ?> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <?php echo get_the_post_thumbnail($post->ID, 'thumbnail'); ?> <?php endwhile; ?> </div> <?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } wp_reset_query(); ?> <?php get_footer(); ?>LVP8さん、すみません!
見直してみて、私がorder byで使いたかった日付が、meta_value_numでなくmeta_valueに入っていたので、以下の内容で実現できました!<?php /* Template Name: Category_Event */ get_header(); ?> <div id="main"> <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $posts_per_page = (get_query_var('posts_per_page')) ? get_query_var('posts_per_page') : get_option('posts_per_page'); $currentTime = date('Y-m-d H:i:s', time()+32400); query_posts(array( 'posts_per_page' => $posts_per_page, 'meta_key' => '_EventStartDate', 'meta_compare' => '<=', 'meta_value' => $currentTime, 'orderby' => 'meta_value', 'order' => 'DESC', 'paged' => $paged )); while ( have_posts() ) : the_post(); ?> <?php echo get_post_meta($post->ID, '_EventStartDate', true); ?> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <?php echo get_the_post_thumbnail($post->ID, 'thumbnail'); ?> <?php endwhile; ?> </div> <?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } wp_reset_query(); ?> <?php get_footer(); ?>私、勝手にquery_postsでは取得できないと思いこんでいました。
これができないと本当に困ったので、助けてくださって本当にありがとうございます。LVP8さん!!!ページングできましたーーーーーーーーー!!!!!!!
書いてくださったほんとにほんとにありがとうございます!でも一つわからないことがありまして、今までのSQL結果は以下なのですが、
2010年10月29日 リボンワーク
2010年10月28日 12:00 AM ソープカービング
2010年9月1日 4:00 PM イベント
2010年5月29日 8:00 AM かこ
2010年4月29日 8:00 AM かこ
2010年4月4日 1:00 PM test
2010年3月29日 8:00 AM かこ
2010年2月1日 かこ
2010年1月29日 8:00今回の結果は以下で、表示順が降順でなくなりました。
1ページ目
2010-10-28 00:00:00ソープカービング
2010-10-29 00:00:00リボンワーク
2010-01-29 08:00:00かこ
2010-02-01 00:00:00かこ
2010-03-29 08:00:00かこ2ページ目
2010-04-29 08:00:00かこ
2010-05-29 08:00:00かこ
2010-09-01 16:00:00イベント
2010-04-04 13:00:00tesmeta_keyが日付型でなくて、longtext型だったのですが、それが原因でしょうか・・・
'orderby' => 'meta_value_num',を変換すればよいのでしょうか。本当にすみません。
言葉が足りずすみません。そうなんです、meta_key の値が _EventStartDate で、
pm.meta_valueの値に日時が入っています。その日付が今日より前のデータを抽出しています。抽出して、一覧表示はできる状態です。