我最终想出的解决问题的代码!
<?php
global $wpdb;
$catresult = array();
$postid = get_the_ID();
$query1c = "SELECT wp_posts.ID, wp_terms.`name` AS `Category`, wp_pods_productcategory.`pc-url` AS `Url`
FROM wp_posts
INNER JOIN wp_term_relationships ON wp_posts.ID = wp_term_relationships.object_id
INNER JOIN wp_terms ON wp_term_relationships.term_taxonomy_id = wp_terms.term_id
LEFT OUTER JOIN wp_pods_productcategory ON wp_pods_productcategory.id = wp_term_relationships.term_taxonomy_id
INNER JOIN wp_term_taxonomy ON wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_id
WHERE wp_term_taxonomy.taxonomy = \'productcategory\' AND wp_posts.ID =$postid
ORDER BY wp_terms.`name` ASC";
$categories = $wpdb->get_results( $query1c );
foreach ( $categories as $category )
{
array_push( $catresult, "<a href=\'".$category->Url."\'>".$category->Category."</a>" );
}
echo implode(\', \', $catresult);
?>
那么这是如何工作的呢?
<?php 这是开始标记,以便服务器知道接下来会发生什么php.
global $wpdb 这里我们告诉服务器,我们将连接到WordPress数据库。
$catresult = array(); 在这里,我们将创建用于存储数据的数组。
$postid = get_the_ID(); 在这里,我们获得了能够过滤查询的帖子id。
$query1c = "SELECT.... 在这里,我们放置查询,它选择我们想要的字段,并按wp_term_taxonomy.taxonomy = \'productcategory\' 和wp_posts.ID =$postid (这是我们使用$postid 之前)和订购人wp_terms.name ASC.
$categories = $wpdb->get_results( $query1c ) 这将运行查询,并将原始数据保存到$categories.
现在我们需要将原始数据转换为我们可以使用的数据,原始数据当前保存为$categories 但我们需要每个单独的结果,因此我们提出:
foreach ( $categories as $category) 这里有一个结果被称为$category
array_push( $catresult, "<a href=\'".$category->Url."\'>".$category->Category."</a>" ) 在这里,我们将每个结果单独“推送”到前面创建的数组-$catresult. 每个结果都有其链接(<a> 标签)。
最后一件事-由于我们希望这些类别在列表中,如果它们之间用逗号分隔,看起来会更好!因此:
echo implode(\', \', $catresult) 所以这里我们“内爆”数组,这意味着我们在数组的每个结果之间放置了一些东西,在本例中,逗号后跟空格。然后使用echo 命令
最后?> 告诉服务器关闭此php 部分