[英]Print content if first ACF Repeater field is empty
我正在嘗試使用ACF的Repeater字段創建一個簡單的文檔管理系統。 我需要打印一個按鈕來下載附加到頂部轉發器字段的文件(以及下載的大小和文件類型)。 但是,如果頂部轉發器字段為空,則應打印“文件不可用”內容。
我對PHP還是很陌生,但是到目前為止,大多數方法都可以使用:
$repeater = get_field( 'document' )[0];
if( $repeater ) {
$fileurl = $repeater[ 'document' ][ 'url' ];
$filesize = filesize( get_attached_file ($repeater[ 'file' ][ 'id' ]) );
$filesize = size_format($filesize);
$filetype = wp_check_filetype( get_attached_file ($repeater[ 'file' ][ 'id' ]));
$download = '<div><a href="' . $repeater[ 'file' ][ 'url' ] . '">Download</a><div>' . $filesize . ' <span>' . $filetype[ 'ext' ] .'</span></div></div>' ;
echo $download;
}
當頂部轉發器中有附件時,這會將按鈕打印到頂部轉發器中的附件。 如果頂部轉發器中沒有任何內容,則僅打印出無效鏈接。 這不會。 我需要添加一個else條件或其他條件,以便在第一個轉發器中沒有內容的情況下打印“文件不可用”內容。
if(empty( $repeater )) {
$unavailable = '<div>Unavailable<div>This document isn\'t ready yet. Please check back later.</div></div>' ;
echo $unavailable;
}
我已經嘗試了許多不同的方法來執行此操作,例如以上所述,但我不知道我做錯了什么。 你能幫我嗎?
在顯示類似這樣的字段之前,您必須檢查一個值:
if( get_field('document'){
... // there is an attached file
}
else {
$unavailable = '<div>Unavailable<div>This document isn\'t ready yet. Please check back later.</div></div>' ;
echo $unavailable;
}
我終於明白了! 我認為我沒有足夠清楚地聲明變量。
$row = get_field( 'document' );
$first_row = $row[0];
$first_row_file = $first_row[ 'file' ];
if( $first_row_file ) :
$download = '<div>Available!<div>This document is ready for download.</div></div>' ;
echo $download;
else :
$unavailable = '<div>Unavailable!<div>This document isn\'t ready yet. Please check back later.</div></div>' ;
echo $unavailable;
endif;
現在,我可以添加更復雜的內容(例如下載按鈕),以在有文件下載時顯示,而在沒有文件時顯示有用的消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.