私は本当に誰の助けにも感謝します。基本的には、wordpressのdo_shortcode関数の限界を回すために、他の配列から作られたリストの配列を作りたいと思っています。私はこれをいくつかの関数を使ってやっています。問題関数PHPからの順序付けられていないリストの内容を返す
長いバージョン:
コードは現在このようになりますコードが正常に$のentrydataを作成している時点で
/* These are the functions contained in a functions file */
function output_entry_data() {
$postdate = get_the_date('j/n/y');
$entrytitle = get_the_title();
return ('<li><p class="postmeta">'. $postdate. '</p><h3>'. $entrytitle. '</h3></li>');
}
function output_month_data($entrynomax = '', $month = '', $entrydata = '') {
$entryno = 1;
while($entryno <= $entrynomax) {
echo $entrydata[$entryno];
$entryno++;
}
}
function output_year_data($monthlynomax = '', $year = '', $monthlydata = '') {
$monthno = 1;
while($monthno <= $monthnomax) {
echo do_shortcode('<h4>[slider title="'. $month. '"]</h4><ul>'. $monthlydata[$monthno]. '</ul>[/slider]');
$monthno++;
}
}
/* This is from a loop that determines whether you have reached the end of a month or a year */
$entrydata[$entryno] = output_entry_data();
$entrynomax = $entryno;
$monthlydata = array($monthno => $monthno);
$monthlydata[$monthno] = return(output_month_data($entrynomax, $month, $entrydata));
$monthlynomax = $monthno;
$annualdata[$yearno] = array($yearno => $yearno);
$annualdata[$yearno] = return(output_year_data($monthlynomax, $year, $monthlydata));
$entryno = 1;
$monthno = 1;
$yearno++;
$yearo = get_the_date('Y');
/* The idea is that all the data gets outputted at the end of the loop like this: */
$yearnomax = $yearno;
echo ('<ul>');
$yearno = 1;
if($yearno <= $yearnomax) {
echo do_shortcode('<h3>[expand title ="'. $year. '"]</h3><ul>'. $annualdata[$yearno]. '</ul>[/expand]');
$yearno++;
}
echo('</ul>');
[$ entryno]配列関数output_entry_dataので()毎回コード行を返すだけです。
しかし、毎月$ monthlydata [$ monthno]という配列を作成しようとすると、単純にoutput_month_data()関数が実行され、データを配列に渡すのではなく、他の機能によって使用される。
私は問題
配列$ entrydataにおける各項目のoutput_entry_data(の「リターン」)および「エコー」output_month_dataにおける()
ショートバージョンを使用したため、これは[$であることがわかりますentryno]はリストアイテムタグを含む文字列ですが、output_monthly_data()は、$ entrydata [$ entryno]内のすべての項目の大きな文字列を、現在のコードと同じようにエコーするのではなく、他の関数で使用するようにします。 whileループが関わっているときにこれを行うことはできますか?
多くのおかげで、私はここに入力を感謝します。