我在 Wordpress 中有一個會員網站,它是使用名為“會員”的自定義帖子類型構建的。出于多種原因,我們使用 cron 作業來運行這些 CPT 字段并使用來自單獨數據庫的數據填充這些字段(公司使用標準 WP 數據庫來存儲數據是不可行的。數據庫在 MS Access 中啟動,導出到我們的 WP 數據庫中的一個單獨的表,然后 cron 作業從該數據庫中提取數據并將其添加到 CPT 數據庫中。在 cron 作業文檔中,我們有這樣的行:update_field( 'memberimage', $members->webpic, $post_id );update_field( 'description', $members->description, $post_id );update_field( 'phone_number', $members->telno, $post_id );update_field( 'email_address', $members->email, $post_id );update_field( 'website_address', $members->web, $post_id );這顯然從數據庫中的字段中獲取數據并將其添加到我們在 CPT 等中創建的字段中。對于每個成員,在后端,我有一個使用高級自定義字段創建的下拉列表(字段名稱:gold_or_silver_member帶有黃金或白銀的選擇選項),將它們標記為白銀會員的黃金。銀牌是默認的,如果它們是金牌,則各種有條件的事情恰好會在其目錄頁面上顯示更多功能。在我們從中提取的數據庫中,在數據庫級別調用負責此操作的列,webtier數據庫用戶將數字 2 添加到字段中,如果成員是銀,則將數字 3 添加到字段中,如果成員是金。我正在嘗試以上面的方式從數據庫中獲取這個數字,并將其輸出以在 ACF 中為每個成員返回黃金或白銀。我們已經有了這一行:update_field( 'gold_or_silver_member', 'Silver', $post_id );我認為,默認情況下所有成員都是銀牌,所以我認為邏輯只需要說:如果數據庫字段中的數字,webtier 是 3 然后將 ACF 字段更改為 gold反正我覺得...老實說,我有點卡住了,我是從其他人那里得到的,由于目前的情況,我無法聯系到他,所以我的任務是解決這個問題……任何人都可以幫助我并給我建議嗎?完整的 cronjob.php 文件是:<?phpinclude('wp-config.php');global $wpdb;$taxonomy="business_sector";$members = $wpdb->get_results("SELECT dep.* FROM directory_enteries_partnership as dep where status=0 ");$i=1;foreach($members as $members){ //echo $members->webcat; //echo "<br>"; $category = $wpdb->get_row("SELECT * FROM directory_categories_partnership as dcp where maincategory=$members->webcat"); //echo "$i"; //echo "<br>"; //$i++; //echo "<pre>"; //print_r($category); $term = get_term_by('name',$category->description,$taxonomy);// echo "<pre>"; //print_r($term);// print_r($members);// //die; $address = $members->address1.' '.$members->address2.' '.$members->town.' '.$members->postcode;$my_post = array( 'post_title' => $members->orgname, 'post_type' => 'members', 'post_status' => 'publish', 'post_author' => 1, 'post_category' => array( $term->term_id ), );非常感謝任何幫助或建議!!感謝您的關注。
1 回答

臨摹微笑
TA貢獻1982條經驗 獲得超2個贊
替換這一行update_field( 'gold_or_silver_member', 'Silver', $post_id );
使用此代碼:
$webtier = $members->webtier;
$membership = 'Silver';
if ($webtier == 3) $membership = 'Gold';
update_field( 'gold_or_silver_member', $membership, $post_id );
- 1 回答
- 0 關注
- 109 瀏覽
添加回答
舉報
0/150
提交
取消