How to generate slugs?

时间:2016-02-20 作者:Giorgi Nakeuri

我有以下情况。我不小心更新了post_name 中的列wp_posts 所有行的表。现在我需要以某种方式更新这些内容。我已经研究过了WP 使用此函数生成Slugwp_unique_post_slug.

有谁能告诉我如何做到这一点的步骤吗?我不知道PHP, 插件等。我需要做什么?

1 个回复
最合适的回答,由SO网友:fischi 整理而成

因为@toscho已经回答了here, 是的,这是可能的。

您只需将此代码复制到functions.php 这就是你的主题。

// get all posts
$posts = get_posts( array (  \'numberposts\' => -1 ) );

foreach ( $posts as $post )
{
    // check the slug and run an update if necessary 
    $new_slug = sanitize_title( $post->post_title );

    // use this line if you have multiple posts with the same title
    $new_slug = wp_unique_post_slug( $new_slug, $post->ID, $post->post_status, $post->post_type, $post->post_parent );

    if ( $post->post_name != $new_slug )
    {
        wp_update_post(
            array (
                \'ID\'        => $post->ID,
                \'post_name\' => $new_slug
            )
        );
    }
}
如果创建yourplugin.php 插件文件夹中的文件,带有有效的插件头和以上代码:

<?php
    /*
    Plugin Name: Your Plugin
    Plugin URI: http://www.example.com
    Description: description
    Version: 0.1
    Author: thatsyou
    Author URI: http://www.yourdomain.com
    License: MIT
    */

    //yourcode
?>  
请注意,如果您将此代码复制到functions.php 或者激活插件,它会一直执行。在这里,您可以了解如何只执行一次代码:Best Practices

相关推荐

为什么我的可过滤公文包页面在Slug按钮和Slug输出WORDRPESS之间不能完美地工作?

我目前在Wordpress中有一个公文包自定义页面,可以根据需要工作,但我有一个问题。问题是,当我单击其中一个slug按钮时,主体/输出不是我想要的那样工作,例如在slug IOS中有3个项目,当我单击IOS slug中的“显示3个项目”时,应该是这样,但在这只显示1个项目。我读过很多类似于这个问题的教程,但都没有解决,请有人帮帮我,我一直在尝试解决这个问题,但仍然没有成功。以下是我读过的一篇文章:https://danny.care/a-responsive-filterable-portfolio-t