サポート » テーマ » サイドバーに・・・

  • 解決済 kazudarts

    (@kazudarts)


    いつもいつもつたない質問ですいませんがよろしくお願いします
    サイドバーに以下で画像と文章を一個だけ表示させてるんですが

    <?php include('charge.php'); ?>
    <?php
    $posts = get_posts('cat=22&showposts=1&orderby=rand');
    global $post;
    ?>
    <?php if($posts): foreach($posts as $post): setup_postdata($post); ?>
    <div class="staff_box"><a href="<?php the_permalink(); ?>"><?php the_excerpt(); ?></a></div>
    <?php endforeach; endif; ?>

    これを一回ランダムで読み込んだら24時間同じ表示をさせたいのですが
    探してみたところphpで文字だけのもので表示させるものはあったのですが
    wordpressで表示させることは出来るのでしょうか
    そのようなプラグインでもかまいませんが誰か知ってる方いましたら
    ご伝授お願いします
    ちなみに見つけたphpは

    <?
    $hit[0] = 1; $rtxt[0] = '今日の日直は';
    $hit[1] = 1; $rtxt[1] = '今日の日直は';
    $hit[2] = 1; $rtxt[2] = '今日の日直は';
    
    $seed= mktime(date("H")-10,0,0,date("m"),date("d"),date("Y"));
    srand( $seed );//ここをコメントアウトすると毎回ランダム
    $sum_hit=array_sum($hit);
    $int = rand( 1,$sum_hit );
    $sum_val=0;
    foreach($hit as $key=>$val){
    $sum_val+=$val;
    if($sum_val>=$int) break;
    }
    print $rtxt[$key];
    
    ?>

    でした
    よろしくお願いします

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • ご期待に沿えず申し訳ありませんが、上記の2つを組み合わせるのは無理です。

    その代わりといってはアレですが。

    1.functions.phpに以下を追加。

    //-------------------
    function randcontcache(){
    	/*
    	** get cache or new data
    	*/
    	$cache_file = TEMPLATEPATH . '/randcont.html';
    	if (file_exists($cache_file)) {
    		$time_newest = @filemtime($cache_file);
    		$timedif = @(time() - $time_newest);
    		if ($timedif < '3600') {
    			$data = file_get_contents($cache_file);
    		} else {
    			// Create new data
    			$data = createOutputData();
    			// save data as cache file
    			if ($f = @fopen($cache_file, 'w')) {
    				fwrite ($f, $data, strlen($data));
    				fclose($f);
    			}
    		}
    	}else {
    		$data = createOutputData();
    	}
    	return $data;
    }
    //-------------------
    function createOutputData(){
    	$posts = get_posts('showposts=1&orderby=rand');
    	global $post;
    	if($posts){
    		foreach($posts as $post){
    			setup_postdata($post);
    		}
    		return '<div class="staff_box"><a href="' . get_permalink() . '">' . get_the_excerpt() . '</a></div>';
    	}
    }

    2.テーマでランダム表示させたい場所に
    <?php echo randcontcache();?>
    を追加。

    3.テーマディレクトリの中に、空のファイル「randcont.html」を作り、パーミッションを書き込み可能(たとえば606)などにする。

    4.キャッシュファイルの作成(初回だけ)。
    functions.phpに追加した$timedif < '3600'の「3600」のところの数字(秒数)を「1」に変更してトップページを1度だけ読み込み、ランダムに表示されているかどうか確認。確認できたら再び3600に戻す。おしまい。

    追記:
    24時間 = 3600秒ではなく86400秒でした。すみません。

    トピック投稿者 kazudarts

    (@kazudarts)

    返事遅れまして申し訳ありません
    ありがとうございました
    早速やってみます
    一余解決済みに変更しておきます^^

    トピック投稿者 kazudarts

    (@kazudarts)

    kurosquareさん
    完璧でした^^
    本当にありがとうございました

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「サイドバーに・・・」には新たに返信することはできません。