我需要能够在帖子标题中插入帖子的 ID。在标题出现的任何地方都应将 id 添加到标题中。它只应添加到具有帖子类型的帖子中post,而不应添加到页面、自定义帖子类型等中。我已经设法做到这一点:function custom1_shortcode_func() { global $post; ob_start(); echo get_the_title($post->ID); echo " ("; echo get_the_ID(); echo ")" $output = ob_get_clean(); return $output;}add_shortcode('post-id', 'custom1_shortcode_func');在帖子中使用 [post-id] 时返回帖子标题和帖子 ID。但是我需要在我的整个网站上修改帖子标题,所以无论什么地方显示帖子标题,它后面都会跟着“(post_id)”。我试过了,它确实在帖子标题前显示了 post_id,但它改变了所有标题,包括菜单:add_filter('the_title', 'wpshout_filter_example');function wpshout_filter_example($title) { return get_the_ID().$title;}
1 回答
潇湘沐
TA贡献1816条经验 获得超6个赞
您的第二次尝试已经接近尾声,但您发现这对每个标题都有效。
您需要做的是先检查帖子类型是否为 a post,如果是则只添加 id。
add_filter('the_title', 'add_id_to_title', 10, 2);
function add_id_to_title($title, $post_id) {
//use the id to check the post type and only add the id if it has a type of "post"
if(get_post_type($post_id) == "post")
$title = $post_id.': '.$title;
return $title;
}
这是做什么的:
过滤
the_title
器可以采用 2 个参数:标题(您正在使用的)以及帖子的 ID。使用 id,可以使用内置
get_post_type
函数找出帖子类型。然后我们可以检查帖子类型是否是
post
,如果是我们将 id 添加到标题。
- 1 回答
- 0 关注
- 116 浏览
添加回答
举报
0/150
提交
取消