web-dev-qa-db-ja.com

PhpMyAdminによる保留中の投稿のスラッグ(URL)の更新

私はphpMyAdminを介して保留中の投稿のスラグを削除/削除する必要があります。保留中の投稿のほとんどは、投稿のタイトルとは異なるslug/URLを持っています。投稿slug/URLを削除すると、投稿が公開されるときにWPが新しいslugを生成するようになります。

テストのためだけに、保留中のphpMyAdminを介して投稿からスラッグを手動で削除し、WPを介して公開することを試みました。投稿タイトルから新しいスラッグが生成されます。今、私はそのためのSQL関数/クエリが必要です。

だから、私は投稿からのみと保留中の投稿からのみスラグを削除する必要があります。

私はそれがこのようなものであるべきだと思います:

UPDATE wp_posts SET post_name = '' WHERE post_status = 'pending' AND post_type = 'post';

誰かがそれを確認してもらえますか(または必要に応じて修正しますか)。

1
Advanced SEO

そのSQLクエリを使用することの1つの不利な点は、実際に投稿を編集するときにのみslugが更新されることです。さらに、プラグインが空のスラグを使って何かをしようとすると、奇妙な振る舞いをするかもしれません。

代わりにWP-CLIを使用することをお勧めします。

まず、保留中の投稿すべてのリストが必要です。

wp post list --post_type=post --post_status=pending --format=ids

次に、投稿のスラッグを削除する方法が必要です。

wp post update <id> --post_name=""

これで、 これらのコマンドを組み合わせることができます

wp post update $(wp post list --post_type=post --post_status=pending --format=ids) --post_name=""

このように、ポストアップデートは、SQLだけではなくWordPressの内部APIを通じて行われます。

2
swissspidy