如何从元数据中自动生成永久链接?

时间:2017-11-30 20:54:21

标签: wordpress permalinks

在stackoverflow.com上搜索了几个小时后,我找不到任何答案。

有人可以帮助我朝正确的方向前进吗?

所以,我想要实现的是以下......

我希望通过

为单个帖子自动生成postname和永久链接
$post_ID, '_wp_attachment_image_alt', $attachment_title

从image_alt或attachment_title中提取数据并设置为postname和permalink ...

add_action('save_post', 'set_slug');

    function set_slug($attachment_id){
        $new_slug = wp_get_attachment_metadata( $attachment_title,'_wp_attachment_image_alt',  true); 
        $post_args = array(
            'ID' => $attachment_id,
            'post_name' => $new_slug,
        );

        wp_update_post($post_args);
    }

我在我的functions.php中尝试使用serval代码来改变单个帖子永久链接,但到目前为止还没有成功。

1 个答案:

答案 0 :(得分:0)

wp_update_post()在成功时返回一个int,在失败时返回WP_Error。你调用wp_update_post()的返回值是多少?

但是,我怀疑这可能导致无限递归,因为wp_update_post()调用wp_insert_post()执行do_action('save_post',...)。在这将导致超出PHP错误时间限制 - 并且对wp_update_post()的调用永远不会返回。

您可能最好使用过滤器'wp_insert_attachment_data',该过滤器使用$ data和$ postarr参数调用,并修改$ data中的'post_name'。