フォーラムへの返信

15件の返信を表示中 - 31 - 45件目 (全49件中)
  • フォーラム: 使い方全般
    返信が含まれるトピック: カスタム投稿タイプのURLにカテゴリーを入れたい
    スレッド開始 webarton

    (@webarton)

    すみません、追記です。こちらのブログを拝見して、
    http://varl.jp/memo/custom-post-type-rss-conditional

    WordPressを、静的なサイトでよくある構造にするのは難しいのだなとわかったのですが、
    もし「こうしたら?」といったアドバイス頂けるようでしたら嬉しいです。

    フォーラム: 使い方全般
    返信が含まれるトピック: 投稿画面に画像登録用のエリアを設けるには
    スレッド開始 webarton

    (@webarton)

    kvexさん、色々本当にありがとうございます。

    そうですよね・・・
    ・Fileタイプだと、アップロードしたらファイル名しか表示されないから、画像を確認できないのは不便
    ・画像を表示したいなら、作りこみしなくてはいけない。
    ・最終的に画像はメディアライブラリにまとめたいが、Fileタイプでアップロードされたものを、メディアライブラリで見られるように作らないといけない。
    ・altに使うテキストも、画像に付随するように、メディアライブラリに一緒に登録しないといけない。

    といったことにハードルを感じているので、他にポストしてお答え頂いた、
    「メディアライブラリの画像ファイル名から、タイトルか代替テキストを取得するには」
    http://ja.forums.wordpress.org/topic/5556?replies=2#post-23157

    のやり方にして、

    ・画像は命名則に従って命名し、メディアライブラリに直接アップする
    ・アップした画像の名前を、記事投稿のカスタムフィールドに入れておく

    ということにしたほうがいいのかなあと思います。
    でも、あんまりあちこち行かないで、できれば一箇所で済ませるのがわかりやすいと思うので、もう少し考えてみたいと思います。

    本当にありがとうございます★

    スレッド開始 webarton

    (@webarton)

    今、'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('続きを読む&raquo;'); ?>
    </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('続きを読む&raquo;'); ?>
    </div>
    <?php endwhile; /* カスタム投稿タイプを表示する ここまで */ ?>

    スレッド開始 webarton

    (@webarton)

    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’だけを満たした値が取れてしまう

    という状態です。

    スレッド開始 webarton

    (@webarton)

    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://ブログのアドレス/カスタム投稿タイプ名/個々のカスタム投稿のスラッグ/」で表示されるんです。

    ということは、これで大丈夫なのでしょうか・・・

    スレッド開始 webarton

    (@webarton)

    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()の部分まで行き着いていないのですが
    早く解決させて表示できるようにしたいと思っています。

    他に解決しなければいけないことができてしまったので、
    まずはそちらを片付けてからになってしまうため、今の段階で返信させて頂きました。

    なんだかつまずいてばっかりで情けないです。
    ありがとうございます。

    スレッド開始 webarton

    (@webarton)

    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();
    }
    フォーラム: 使い方全般
    返信が含まれるトピック: 個別記事ページなしってありえますか?
    スレッド開始 webarton

    (@webarton)

    kvexさん、ありがとうございます!

    is_single() で分岐して、シングルページだったらフロントページにリダイレクトする、なるほどそうすればできるんですね。

    お客様の意図は、各記事のボリュームが少ないから、一覧表示で記事内容を全部表示して、10件ずつページングしたほうが閲覧者にとって見やすいだろう、ということです。記事個別のページが存在すべきかどうかは、まだお考えになっていないと思います。

    全て最終的にはお客様が判断することと認識していますが、リスクがあるならそれをご説明して、その上での判断をして頂けるように心がけています。

    ありがとうございました。

    スレッド開始 webarton

    (@webarton)

    umbrella_processさん、ありがとうございます!

    カスタム投稿タイプについてのCodexのURLをありがとうございます。
    すみません、前回投稿したとき、「カスタム投稿タイプ」を、管理画面のパーマリンク設定の「カスタム構造」のことかと勘違いしていました。意味不明ですみません。

    カスタム投稿タイプのCodexを読んでみたのですが、一回読んだだけでは悲しいほど理解できなかったので、もう少し時間をかけて読んでみます。

    ありがとうございます。

    スレッド開始 webarton

    (@webarton)

    php-webさん、umbrella_processさん、ありがとうございます!

    やっぱり避けたほうがいいですよね・・・

    ごめんなさい、お二人に頂いたお答えの中でわからないことがあって、
    もしご面倒でなければ教えて頂けないでしょうか。

    php-webさん、不具合・不都合が起きた場合の対処方法として書いて頂いた「パッチを作る」ですが、どういったパッチを作ることになりそうでしょうか。パッチを作ったことがなく、すみません。

    umbrella_processさん、カテゴリは複数選択できますが、記事編集画面のタイトル下にある「パーマリンク」の部分は1つで、2つカテゴリを選んだ場合、どちらかのカテゴリが割り当てられると思います。割り当てられなかったカテゴリ名で投稿を見ようとしても、選ばれたほうのカテゴリ名がついたURLにリダイレクトしたので、複数のパーマリンクが存在することはないのではと思ったのですが、間違いでしょうか。

    それからすみません、「普通に、カスタム投稿タイプを使えば近いURL構造になると思います。」という部分がわかりませんでした。カスタム投稿タイプを「/%category%/%postname%/ 」と設定せず、近いURL構造を設定すればOK、ということでしょうか。その場合、どのように設定するのが近いURL構造になりますでしょうか。

    わかってなくてすみません。

    フォーラム: プラグイン
    返信が含まれるトピック: The Events Calendarの過去実績を表示したい
    スレッド開始 webarton

    (@webarton)

    思いあまってこちらにも投稿してしまいまして、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(); ?>
    フォーラム: 使い方全般
    返信が含まれるトピック: ページング
    スレッド開始 webarton

    (@webarton)

    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では取得できないと思いこんでいました。
    これができないと本当に困ったので、助けてくださって本当にありがとうございます。

    フォーラム: 使い方全般
    返信が含まれるトピック: ページング
    スレッド開始 webarton

    (@webarton)

    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:00tes

    meta_keyが日付型でなくて、longtext型だったのですが、それが原因でしょうか・・・

    'orderby' => 'meta_value_num',

    を変換すればよいのでしょうか。本当にすみません。

    フォーラム: 使い方全般
    返信が含まれるトピック: ページング
    スレッド開始 webarton

    (@webarton)

    言葉が足りずすみません。そうなんです、meta_key の値が _EventStartDate で、
    pm.meta_valueの値に日時が入っています。その日付が今日より前のデータを抽出しています。

    抽出して、一覧表示はできる状態です。

    フォーラム: 使い方全般
    返信が含まれるトピック: ページング
    スレッド開始 webarton

    (@webarton)

    すみません、補足です。
    自分でやってみているのは、ページ数を$_GETで取得するやりかたなのですが、
    それですと2ページ以降をクリックしたときURLがの最後に「/?p=2」などとつく形になるため、「ページがありません」になってしまいます。

    $_GETでどのようにすれば「ページがありません」にならずに次のページが表示できるのか、解決できればと思いますが、特に$_GETにこだわっているわけではなく、他の方法があれば教えて頂けると大変嬉しいです。

15件の返信を表示中 - 31 - 45件目 (全49件中)