通过 ID 从某个 post 获取 WordPress 标签?
Get WordPress tags from a certain post by its ID?
我到处找遍了API。我想出的只是通过 TAG 获取 POSTS 的方法,而不是通过其 ID 获取 SPECIFIC post 的 TAGS。
我想做的很简单——我有一个 post,我想检查它是否有一个特定的标签——'specialtag'——然后在那个页面上做一些事情,如果它有这个标签。似乎没有什么能指出我正确的方向。有什么我没看到的吗?
get_the_tags
将获取特定 post 的所有标签。它可以将一个 post ID 作为在循环外使用的参数:
https://codex.wordpress.org/Function_Reference/get_the_tags
如果您只想确定 post 是否具有特定标签,您可以使用 has_tag
:
https://codex.wordpress.org/Function_Reference/has_tag
if( has_tag($tag_slug_or_id, $post_id_or_object) ) {
//...
}
很简单,你可以像这样使用get_the_tags
函数:
CODEX: The function return an array of objects, one object for each tag assigned to the
post.
示例 1:
如果您有 post ID,您可以通过此代码
检索与 post 关联的标签
$postid = $post->ID;
get_the_tags($postid);
示例 2:
在循环
中检索与 post 关联的标签
$posttags = get_the_tags();
if ($posttags) {
foreach($posttags as $tag) {
echo $tag->name . ' ';
}
}
循环中使用此函数,则无需传递ID
示例 3:
在循环外检索与 post 关联的标签
global $post;
foreach(get_the_tags($post->ID) as $tag) {
echo $tag->name . ', ';
}
如果您需要通过 post id 获取标签,您可以使用以下函数。这将适用于任何地方,因为该方法基于数据库查询。
function sc_tf_get_tags_as_array($post_id){
global $wpdb;
$tbl_terms = $wpdb->prefix . "terms";
$tbl_term_relationships = $wpdb->prefix . "term_relationships";
$sql = "SELECT name FROM $tbl_terms WHERE term_id in (SELECT term_taxonomy_id FROM $tbl_term_relationships WHERE object_id='$post_id');";
$results = $wpdb->get_results($sql);
if($results){
foreach($results as $row){
$tags_list[] = $row->name;
}
}
return $tags_list;
}
我到处找遍了API。我想出的只是通过 TAG 获取 POSTS 的方法,而不是通过其 ID 获取 SPECIFIC post 的 TAGS。
我想做的很简单——我有一个 post,我想检查它是否有一个特定的标签——'specialtag'——然后在那个页面上做一些事情,如果它有这个标签。似乎没有什么能指出我正确的方向。有什么我没看到的吗?
get_the_tags
将获取特定 post 的所有标签。它可以将一个 post ID 作为在循环外使用的参数:
https://codex.wordpress.org/Function_Reference/get_the_tags
如果您只想确定 post 是否具有特定标签,您可以使用 has_tag
:
https://codex.wordpress.org/Function_Reference/has_tag
if( has_tag($tag_slug_or_id, $post_id_or_object) ) {
//...
}
很简单,你可以像这样使用get_the_tags
函数:
CODEX: The function return an array of objects, one object for each tag assigned to the post.
示例 1:
如果您有 post ID,您可以通过此代码
检索与 post 关联的标签$postid = $post->ID;
get_the_tags($postid);
示例 2:
在循环
中检索与 post 关联的标签$posttags = get_the_tags();
if ($posttags) {
foreach($posttags as $tag) {
echo $tag->name . ' ';
}
}
循环中使用此函数,则无需传递ID
示例 3:
在循环外检索与 post 关联的标签
global $post;
foreach(get_the_tags($post->ID) as $tag) {
echo $tag->name . ', ';
}
如果您需要通过 post id 获取标签,您可以使用以下函数。这将适用于任何地方,因为该方法基于数据库查询。
function sc_tf_get_tags_as_array($post_id){
global $wpdb;
$tbl_terms = $wpdb->prefix . "terms";
$tbl_term_relationships = $wpdb->prefix . "term_relationships";
$sql = "SELECT name FROM $tbl_terms WHERE term_id in (SELECT term_taxonomy_id FROM $tbl_term_relationships WHERE object_id='$post_id');";
$results = $wpdb->get_results($sql);
if($results){
foreach($results as $row){
$tags_list[] = $row->name;
}
}
return $tags_list;
}