web-dev-qa-db-ja.com

選択した他のパーマリンクではなく、ページIDを投稿に保存するにはどうすればよいですか。

私たちはWordpressを知識ベースとして使っています。メディアウィキとjekyllをGithubページ用に残し、さまざまなシステムの数を4つから1つに減らしました。ブログ用に1つのWordpressインストールと3つの異なる製品用に3つの異なる知識ベース用に3つ。利点は、編集者は3つではなく1つのシステムをマスターするだけでよいことです。

パーマリンクを/%postname%/に設定しました。これにより、ナイスで論理的なWebリンクになります。ほとんどのページで、エディタを使用して他のナレッジベースページへのリンクを追加しています。ポップアップで、リンクするページを選択しています。パーマリンクがページに追加されます。我々は常にナレッジベースに取り組んでいるので、ポストネームが変わることが起こるでしょう。これにより、変更された投稿にリンクしているインターネット上のナレッジベースページでエラー404が発生します。

そのため、投稿名の代わりにページID(?p = 123)を追加したいと思います。フロントエンドでリンクがクリックされると、WordpressはページIDを/%postname%/に書き換えるのに十分賢いようです。利点はすべてのページのリンクを変更する必要がないことです。 (またはこれも自動で行うことができますか?)

6
hans2103

あなたのfunctions.phpにそれを追加します。

function wp_link_query_mod ( $results ){
    if( count( $results ) ){
        for( $i=0; $i<count($results); $i++ ){
            $results[$i]['permalink'] = wp_get_shortlink( $results[$i]['ID'] );
        }
    }
    return $results;
}
add_filter('wp_link_query', 'wp_link_query_mod');

このフックはWP 3.7以降でしか使えません。もしあなたが以前のバージョンを持っているなら代替手段がありますが、それはWPコアファイルの行を変更することを意味します。

6
Katrina