• 解決済 kzksai

    (@kzksai)


    現在サイドバーにて新着記事の一覧を表示させているのですが、記事タイトルが長すぎてきれいに表示されないため
    “【メルマガ】○○○”,”【ラジオ】○○○”,”【イベント】○○○”の【】部分を削除したいと考えております。
    そこでこのようなコードを書いていたのですが

    <!-- 新着情報 -->
    <?php
    // 各カテゴリからデータの所得とソート
    	$catList = array(2,3,6);
    
    //各カテゴリの最新の記事1件を取り出す
    	foreach ($catList as $val) {
      		$id = $val;
      		if(is_object($id)) : $id = $val->cat_ID; endif;
      		$resPost = get_posts('numberposts=1&category='.$id.'&orderby=post_date');
    
    //最新記事を配列に入れる
    			foreach ($resPost as $post) {
    				$resArr []= $post;
    			}
    	}
    
    //カテゴリ名を削除
    
    $s = array("【メルマガ】","【ラジオ】","【イベント】");
    			foreach ($resArr as $d) {
    		  		$data[] = $d->post_title;
    		  		$title = str_replace($s,"",$data);
    			}
    //削除したタイトルを入れ直す
    
    ?>
    
    <h3>新着情報</h3>
    <ul>
    <?
    	foreach($resArr as $post):
    	setup_postdata($post);
    
    	$categories = get_the_category();
    	foreach($categories as $category){ $class= $category->slug; }
    
    ?>
    <div class="<?php echo$class; ?>"><?php the_time(Y年n月d日); ?></div>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    <?php endforeach; ?>
    </ul>
    <!-- 新着情報 -->

    タイトルの【】部分は削除できたのですが、それをどのように反映させればいいかわからず、困っています。

    PHPも最近始めたばかりなので、使えるものもあまりわからないので
    どなたか教えて頂けないでしょうか?

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • こんにちは、

    新着情報の部分が元々のコードでしたら、the_title()をechoさせないで、
    テストはしていませんが、

    <?php
    $my_title = the_title('','',false);
    $s = array("【メルマガ】","【ラジオ】","【イベント】");
    $my_title = str_replace( $s, '', $mytitle);
    ?>

    といった形で十分な感じがしますが? このような形ではうまくいかなかったのですか?

    トピック投稿者 kzksai

    (@kzksai)

    こんにちは、回答ありがとうございます。

    上記コードはどこらへんに挿入すればいいですか?

    このコードは、kzksaiさんが書いたものではないのですか?

    トピック投稿者 kzksai

    (@kzksai)

    遅くなってしまい、すみません。

    もともとあったコードに自分で付け足して書いたものです。

    トピック投稿者 kzksai

    (@kzksai)

    <h3>新着情報</h3>
    <ul>
    <?
    	foreach($resArr as $post):
    	setup_postdata($post);
    
    	$categories = get_the_category();
    	foreach($categories as $category)	{ $class= $category->slug; }
    	$my_title = the_title('','',false);
    	$s = array("【メルマガ】","【ラジオ】","【イベント】");
    	$my_title = str_replace( $s, '', $my_title);
    
    ?>
    <div class="<?php echo$class; ?>"><?php the_time(Y年n月d日); ?></div>
    <li><a href="<?php the_permalink(); ?>"><?php echo $my_title; ?></a></li>
    <?php endforeach; ?>
    </ul>

    下のループの部分で試してみたところ
    【イベント】だけ消えて【メルマガ】と【ラジオ】は消えずに残ってしまいます。

    トピック投稿者 kzksai

    (@kzksai)

    度々すみません、$sの部分のカテゴリの名前を変えるのを忘れていました。

    上記コードでうまく表示させることが出来ました、
    nobitaさんありがとうございました。

    kzksaiさん、おめでとうございます。

    苦労は、きっと次につながります

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「記事タイトルの変更」には新たに返信することはできません。