• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:任意の数だけ繰り返した文字列をreturnで返したい)

任意の数だけ繰り返した文字列をreturnで返す方法をご教示ください

このQ&Aのポイント
  • WordPressで指定した数だけ文章を繰り返すショートコードを作りたいです。
  • while文を使用するとreturnで繰り返しが止まってしまうため、困っています。
  • printやechoではなく、returnで返す必要がある理由として、ショートコードハンドラ関数の返り値は投稿コンテンツの出力に挿入され、echoではなくreturnを使用する必要があります。しかし、returnを使うと繰り返しが止まってしまいます。解決策をご教示ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5069/13245)
回答No.1

以下のようにすると大丈夫だと思います。(一部のみ記載です) 繰り返しの中で毎回 $block の中身を書き換えているので最後の1回分しか返ってきません。 $block を書き足していくと意図した通りになると思います。 ======================== $i=0; $block = ""; do { $block .= "<li>IDは" .$id. "、番号は" .$num. "番です</li>\n"; ++$i; } while($i<$num); // numの数だけ繰り返す

marie_blue
質問者

お礼

で、できましたー!! すごいです、嬉しいです、有難うございます><

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • liの数によってulの横幅を動的に設定したい

    以下のようなhtmlがあったとして、ul.imageの幅をliの数によって動的に設定したいのですが、 jQueryで指定する場合どう書けばいいのかご教授下さい。 liはfloatしているものとします。 ====================================================== <div class="block"> <ul class="image"> <li><img src="hoge.jpg" alt="" /></li> <li><img src="hoge.jpg" alt="" /></li> <li><img src="hoge.jpg" alt="" /></li> </ul> </div> <div class="block"> <ul class="image"> <li><img src="hoge.jpg" alt="" /></li> <li><img src="hoge.jpg" alt="" /></li> <li><img src="hoge.jpg" alt="" /></li> <li><img src="hoge.jpg" alt="" /></li> <li><img src="hoge.jpg" alt="" /></li> <li><img src="hoge.jpg" alt="" /></li> </ul> </div> <div class="block"> <ul class="image"> <li><img src="hoge.jpg" alt="" /></li> </ul> </div> ...以下、いくつも.blockが続きます

  • 半角文字を使用してリスト表示をするとレイアウトが崩れてしまう

    -------------------------------- //htmlコード <div id="hoge">  <ul>   <li>あああ</li>   <li>いいい</li>   <li>ううう</li>   <li>えええ</li>   <li>おおお</li>  </ul> </div> -------------------------------- //cssコード #hoge ul {     margin: 0px;     padding: 0px;     list-style-type: none;     width: 500px; } #hoge li {     width: 33%;     float: left; } --------------------------------- 上記コードで出力をすると以下のように出力されます。 あああ  いいい  ううう えええ  おおお しかし、例えばここで <li>いいい</li> に半角文字を使用して <li>いいいi</li> の様に変更すると あああ  いいいi  ううう              えええ おおお とレイアウトが崩れて表示されてしまいます。 Firefoxでは問題なく表示されますが、IEでこのような現象がおきてしまいます。 これはどういった原因が考えられるのでしょうか。

    • ベストアンサー
    • HTML
  • なぜか Return-Path がechoできない

    メールボックスにあるメールを受信してブラウザに表示したいのでが なぜか、Return-Path の部分のメールアドレスが表示されません。 下記ソースなのですが、どこがいけないのかご教授ください postfix 使ってます <? // ------------------------------------------------- $user = 'a@hoge.ne.jp'; $pwd = 'hoge'; $host = "hoge.ne.jp"; $port = 110; $fp = fsockopen($host, $port); // ログイン $line = fgets($fp, 512); fputs($fp, "USER $user\r\n"); // USER名 $line = fgets($fp, 512); fputs($fp, "PASS $pwd\r\n"); // パスワード $line = fgets($fp, 512); // ログイン失敗? if(!eregi("OK", $line)){ fclose($fp); echo 'ログイン失敗'; exit; } // メールボックス内のデータを取得 fputs($fp, "STAT\r\n"); $line = fgets($fp, 512); list($stat, $num, $size) = explode(' ', $line); // データがない? if(0+$num == 0){ fclose($fp); echo 'メールはありません'; exit; } // それぞれ受信して、配列に納める for($id=1;$id<=$num;$id++){ fputs($fp, "RETR $id\r\n"); $line = fgets($fp); $msg[$id] = ""; while(!eregi("^\.\r?\n",$line)){ $line = fgets($fp, 512); echo $line.'<br>'; } } fputs($fp, "QUIT\r\n"); fclose($fp); ?>

    • ベストアンサー
    • PHP
  • phpの文字列表示

    phpで質問です。 ランダムな数字、1~100の間で70以上が出れば表示を変える というプログラムをしたのですが、 70以上が出るとなぜか表示が崩れます。 正常に表示する方法を教えてください。 コード $rand = mt_rand(1,100); echo $rand; if($rand<70) { echo '<ul> <a href="#"><li>A</li></a> <a href="#"><li>B</li></a> <a href="#"><li>C</li></a> <a href="index.php"><li>D</li></a> </ul>'; } else { echo '<ul><a href="example_sub4.php" target="_brank"><li>close</li></a> <a href="#"><li>E</li></a> <a href="#><li>F</li></a> <a href="index.php"><li>G</li></a>'; } ?>

    • ベストアンサー
    • PHP
  • 文字列連結がうまくいきません

    define("SITE3_1", "http://www.yahoo.co.jp/"); (略) <div id="tab3-1" class="hoge"><dl><?php testfunc(SITE3_1,1,1); ?></dl></div> <div id="tab3-2" class="hoge"><dl><?php testfunc(SITE3_2,1,1); ?></dl></div> <div id="tab3-3" class="hoge"><dl><?php testfunc(SITE3_3,1,1); ?></dl></div> <div id="tab3-4" class="hoge"><dl><?php testfunc(SITE3_4,1,1); ?></dl></div> <div id="tab3-5" class="hoge"><dl><?php testfunc(SITE3_5,1,1); ?></dl></div> となってるのをループ処理したいのですが、 うまくいきません。   <?php    for($i=1; $i< 6; $i++){     echo "<div id=\"tab3-\".i.\" class=\"tabPanel\"><dl>";     testfunc(("SITE3_".i."),1,1)";     echo "</dl></div>";    }   ?> どう書けばよいでしょうか?

    • ベストアンサー
    • PHP
  • カテゴリページ内 複数タブ

    wordpressでサイト作っています idの番号を変えることで1ページ内に#numの連番で複数タブを置ける様にはしたのですが、 while文のなかで番号に連番を振るやり方がわかりません。 初心者ですいませんが、よろしくお願いします <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/ … <script type="text/javascript"> $.hoge = function( target ) { //Default Action target.find(".tab_content").hide(); //Hide all content target.find("ul.tabs li:first").addClass("active").show(); //Activate first tab target.find(".tab_content:first").show(); //Show first tab content //On Click Event target.find("ul.tabs li").click(function() { target.find("ul.tabs li").removeClass("active"); //Remove any "active" class $(this).addClass("active"); //Add "active" class to selected tab target.find(".tab_content").hide(); //Hide all tab content var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content activeTab = activeTab.replace( '#', '.' ); target.find(activeTab).fadeIn(); //Fade in the active content return false; }); }// $.hoge // -------------------------------------- $(function() { $.hoge( $('#num1') ); $.hoge( $('#num2') ); }); </script> </head> <body> <div id="num1" class="container"> <ul class="tabs"> <li><a href="#tab1">Gallery</a></li> <li><a href="#tab2">Submit</a></li> </ul> <div class="tab_container"> <div class="tab1 tab_content"> <h2>Gallery</h2> </div> <div class="tab2 tab_content"> <h2>Submit</h2> </div> </div> </div> <div id="num2" class="container"> <ul class="tabs"> <li><a href="#tab1">Gallery</a></li> <li><a href="#tab2">Submit</a></li> </ul> <div class="tab_container"> <div class="tab1 tab_content"> <h2>Gallery</h2> </div> <div class="tab2 tab_content"> <h2>Submit</h2> </div> </div> </div> </body> </html>

  • javascriptでCSVを読み込み表示する方法を探しています。

    javascriptでCSVを読み込み表示する方法を探しています。 <div id="hoge"> <ul class="hogehoge"> <li><a href="1行目の1つ目のデータ">1行目の2つ目のデータ</a></li> <li><a href="2行目の1つ目のデータ">2行目の2つ目のデータ</a></li> ・ ・ ・ </ul> </div> で、ulに囲まれた部分をjavascriptで生成させたいのですが・・・ (ulのところのCSS指定は、idではなく、classにしたいです) よろしくお願いいたします。

  • jQueryで記事を6列表示にしたいのです。

    jQueryで記事を6列表示にしたいのです。 jQueryで6列表示をしたいと思って試行錯誤をしていたのですが、 全くわからずじまいで、どうしたらいいのかと知恵袋に投稿致しました。 各カテゴリごとに表示をするようになっているのですが、 オールだけ全て表示になります。 5つ残して表示させればいいのですが、各カテゴリが 消えてしまうので、どうしてもオールは6行表示させたいと思っています。 どなたか助けていただけませんでしょうか? jQuery ---------------------------------------------- $(document).ready(function() { $('ul#navi a').click(function() { $(this).css('outline','none'); $('ul#navi .all').removeClass('current'); $(this).parent().addClass('current'); var filterVal = $(this).text().toLowerCase().replace(' ','-'); if(filterVal == 'all') { $('ul#portfolio li.hidden').fadeIn('slow').removeClass('hidden'); } else { $('ul#portfolio li').each(function() { if(!$(this).hasClass(filterVal)) { $(this).fadeOut('normal').addClass('hidden'); } else { $(this).fadeIn('slow').removeClass('hidden'); } }); } return false; }); }); HTML ---------------------------------------------- <ul id="navi"> <li class="all"><a href="#">All</a></li> <li><a href="#">CMS</a></li> <li><a href="#">CSS</a></li> <li><a href="#">Javascript</a></li> </ul> <ul id="portfolio"> <li class="cms"><a href="#">Movable Type</a></li> <li class="cms"><a href="#">Movable Type</a></li> <li class="cms"><a href="#">Movable Type</a></li> <li class="css"><a href="#">CSSテンプレート</a></li> <li class="javascript"><a href="#">prototype</a></li> <li class="css"><a href="#">CSSビギナー</a></li> <li class="css"><a href="#">CSSテンプレート</a></li> <li class="css"><a href="#">CSSテンプレート</a></li> <li class="javascript"><a href="#">jQuery</a></li> <li class="javascript"><a href="#">jQuery</a></li> <li class="javascript"><a href="#">jQuery</a></li> <li class="javascript"><a href="#">jQuery</a></li> <li class="javascript"><a href="#">plugin</a></li> </ul>

  • jqeryについて

    [script] $(function() { $(".btn").on('click',function(){ Tmp=$(this).attr('id').replace('button','p'); $(".box").hide(); $("#"+Tmp).show(); }); }); [css] .box{ display:none; } [html] <p id="p1" class="box">テスト1</p> <p id="p2" class="box">テスト2</p> <p id="p3" class="box">テスト3</p> <input type="button" id="button1" value="ボタン1" class="btn" /> <input type="button" id="button2" value="ボタン2" class="btn" /> <input type="button" id="button3" value="ボタン3" class="btn" /> 上記のコードのボタン部分、表示部分を変えたいのですがうまくいかないので教ええてください。 <input type="button" id="button1" value="ボタン1" class="btn" />ここの部分を<p id="tab1 class="tab">に変更し、 <p id="p1" class="box">テスト1</p> ここの部分を <div class="">(cssでアイテム(ul)全体を右に寄せています。) <ul> <a href="/"><li><img src="hoge/hoge1.png"><p>hogehoge</p></li></a> <a href="/"><li><img src="hoge/hoge2.png"><p>hoge</p></li></a> </ul> </div> よろしくお願いします。

  • Javaの変数でhtmlのメニュー表示を切替したい

    Javaと連携させたページについてです。 Javaで宣言した変数のtrue,falseによって、html上のメニューバーの表示・非表示を切り替えることができるようにしたいです。 メニューバーは下のようになっています <div class="gNavi" id="isMenu">  <ul>   <li id="menu0">~~</li>   <li id="menu1">~~</li>   <li id="menu2">~~</li>   <li id="menu3">~~</li>   <li id="menu4">~~</li>   <li id="menu5">~~</li>   <li id="menu6">~~</li>  </ul> </div> このメニューの2番目(menu1)~6番目(menu5)の表示・非表示を切り替えます。 いい方法はないでしょうか?

    • ベストアンサー
    • HTML
このQ&Aのポイント
  • ドライバー設定後、印刷できない問題が発生しています。ドライバーをインストールし、再起動も行いましたが、印刷ができません。
  • MACの環境設定で「プリンタとスキャナ」でプリンタを追加しましたが、印刷ができません。プリンターはEPSON社のLP-S7000です。
  • MACのバージョンは10.14.6です。何度やっても印刷ができず、困っています。
回答を見る

専門家に質問してみよう