最新公告
  • 欢迎您光临站盟网(原知事网),一个优质的网站源码基地、精品网站模板和插件。欢迎加入永久SVIP
  • WordPress函数wp_check_for_changed_slugs()用法 判断文章别名是否已修改

    正文概述 知事网   2020-09-17 10:09   896

    描述:

    判断文章/页面的别名是否已经修改

    用法:

    <?php wp_check_for_changed_slugs( $post_id ); ?>

    参数:

    $post_id
    
    (integer) (必填) 文章ID.
    
    默认值: None

    源文件:

    /**
    * Check for changed slugs for published post objects and save the old slug.
    *
    * The function is used when a post object of any type is updated,
    * by comparing the current and previous post objects.
    *
    * If the slug was changed and not already part of the old slugs then it will be
    * added to the post meta field ('_wp_old_slug') for storing old slugs for that
    * post.
    *
    * The most logically usage of this function is redirecting changed post objects, so
    * that those that linked to an changed post will be redirected to the new post.
    *
    * @since 2.1.0
    *
    * @param int $post_id Post ID.
    * @param WP_Post $post The Post Object
    * @param WP_Post $post_before The Previous Post Object
    */
    function wp_check_for_changed_slugs( $post_id, $post, $post_before ) {
    // Don't bother if it hasnt changed.
    if ( $post->post_name == $post_before->post_name )
    return;
    
    // We're only concerned with published, non-hierarchical objects.
    if ( $post->post_status != 'publish' || is_post_type_hierarchical( $post->post_type ) )
    return;
    
    $old_slugs = (array) get_post_meta($post_id, '_wp_old_slug');
    
    // If we haven't added this old slug before, add it now.
    if ( !empty( $post_before->post_name ) && !in_array($post_before->post_name, $old_slugs) )
    add_post_meta($post_id, '_wp_old_slug', $post_before->post_name);
    
    // If the new slug was used previously, delete it from the list.
    if ( in_array($post->post_name, $old_slugs) )
    delete_post_meta($post_id, '_wp_old_slug', $post->post_name);
    }

    站盟网 » WordPress函数wp_check_for_changed_slugs()用法 判断文章别名是否已修改

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者
    请选择支付方式
    ×
    支付宝支付
    微信支付
    余额支付
    ×
    微信扫码支付 0 元