我有一个包含帖子标题的短代码。此短代码在前端加载帖子中的内容。这很好:
function title_content($atts, $content = null ) {
global $wpdb;
$post_id = $wpdb->get_var($wpdb->prepare("SELECT ID FROM {$wpdb->posts} WHERE post_title = %s",$content));
$getpost = get_post($post_id);
return $getpost->post_content;
}
add_shortcode( \'content\', \'title_content\');
但我在不同的类别中有相同标题的帖子。因此,这有时会加载错误的内容,因为我不想在短代码中使用post id或post slug。
我只想从正确的类别(名称为“博客”)的帖子中获取内容,这样我就不会再与同一个帖子标题发生冲突。
有人有主意吗,我怎么解决这个问题?
最合适的回答,由SO网友:cjbj 整理而成
您可以使用该功能in_category
测试某个帖子是否属于某个类别。它将一个或多个类别和帖子作为输入。因此,您可以这样区分您的函数:
function title_content($atts, $content = null ) {
global $wpdb;
$post_id = $wpdb->get_var($wpdb->prepare("SELECT ID FROM {$wpdb->posts} WHERE post_title = %s",$content));
$getpost = get_post($post_id);
if (in_category(\'blog\',$getpost)) {
return $getpost->post_content;
}
else {
... do something else ...
}
}