为了账号安全,请及时绑定邮箱和手机立即绑定

将 post_id 添加到 post_title 仅适用于 post_type 为“post”的帖子

将 post_id 添加到 post_title 仅适用于 post_type 为“post”的帖子

PHP
陪伴而非守候 2023-05-12 16:11:12
我需要能够在帖子标题中插入帖子的 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 添加到标题。


查看完整回答
反对 回复 2023-05-12
  • 1 回答
  • 0 关注
  • 116 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信