フォーラムへの返信

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック投稿者 mattune

    (@mattune)

    kzさん

    お世話になります。
    返事が遅れてしまい申し訳ありません。

    教えて頂いたソースを参考にしてなんとかやってみます。

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

    トピック投稿者 mattune

    (@mattune)

    kzさん

    返事が遅れてしまいすいません。

    function.php ではなくて functions.php (s が付いて複数形になってます)なのをご確認ください。

    恥ずかしいを通り越して情けなくなりました。。。。初歩的なミスですいません。

    functions.phpに変更し、記述したところ動作を確認しました。
    が、やはり注釈してくださった

    ※カスタムフィールドの年月重複は未考慮。

    の部分や、シングルページに入った時はそのページの年月しか表示されないない 等、いろいろとやはり不安定な動作が発覚しました。

    ちなみに該当フォームは以下のようにしています。

    <form method="get" name="s" action="<?php bloginfo( 'url' ); ?>">
    	<select name="c" class="simpleBox">							<option value="" selected="selected">ARCHIVES</option>
    	<?php if(have_posts()) : ?>
    	<?php while(have_posts()) : the_post(); ?>
    	<?php echo my_get_archives(); ?>
    	<?php endwhile; ?>
    	<?php endif; ?>
    	</select>
    </form>

    やはりこれ以上の動作は難しいでしょうか??

    トピック投稿者 mattune

    (@mattune)

    kzさん

    お返事ありがとうございます。

    頂いたソースをfunction.phpにコピペし、
    <?php echo my_get_archives(); ?>
    を該当箇所に記入しましたが、ページを見るとその箇所から以下が表示されなくなりました。
    念のため、function.phpを新規に作成し、頂いたソースのみの関数を記述しましたが、やはり動作しないようです。

    作成したfunction.php

    <?php
    // use in the loop
    function my_get_archives(){
    	global $wpdb, $wp_locale;
    
    	$ymds = get_post_meta(get_the_ID(), '日付カスタムフィールドID');
    	foreach((array)$ymds as $ymd){
    		$ym = explode('.', $ymd);
    		$year = $ym[0];
    		$month = $ym[1];
    		$count = $wpdb->get_var($wpdb->prepare("
    			SELECT COUNT(ID)
    			FROM $wpdb->posts
    			WHERE post_type = 'post' AND post_status = 'publish'
    			AND YEAR(post_date) = $year AND MONTH(post_date) = $month
    			;"));
    		$url = get_month_link($year, $month);
    		$text = sprintf(__('%1$s %2$d'), $wp_locale->get_month($month), $year);
    		$output .= get_archives_link($url, $text, 'option', '', '&nbsp;('.$count.')');
    	}
    	return $output;
    }
    ?>

    トピック投稿者 mattune

    (@mattune)

    taikikenさん

    解決しました!ありがとうございます。
    get_categories()ってタグがあったんですね。勉強になりました。

    積極的に英語のページも参照しないとダメですね/////

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

4件の返信を表示中 - 1 - 4件目 (全4件中)