1

Drupal の投稿を Wordpress にエクスポートしようとしています (それ自体が面倒です)。ただし、ブログ投稿の URL を維持する方法がわかりません。それらのいくつかはカスタマイズされています:

土の話というタイトルのブログはblog/2012/03/03/soil-storyDrupal です。Welcome John Doe というタイトルの 1 つは、単純に/john

これらの URL を作成するための Drupal 機能はありますか? カスタマイズされたブログ投稿はどこに保存されますか?

4

4 に答える 4

3

urlメソッドを使用して URL エイリアスを取得できます。

$url = url('node/' . $nid);
于 2012-11-26T16:48:11.370 に答える
2

関数を使用するのではなく、見ているときにデータベースから必要なものを取得したいと思っていたので、上記は非常に役に立ちました。それは私に良い出発点を与えてくれましたが、これをそのまま実行すると、正しい列名ではないため、エラーが発生するだけです。データベースのコピーで作業していない場合、これにより適切な更新が行われ、すべてが壊れることに注意してください。このコードはそれを修正します:

   UPDATE `url_alias` 
   SET source=SUBSTRING_INDEX(`source`, '/', -1), 
       alias=SUBSTRING_INDEX(`alias`, '/', -1) 
   WHERE 1

私はその場で物事を行うことに大きくないので、nidとslugの2つの列を追加してから、このクエリを実行しました

   UPDATE `url_alias` 
   SET nid=SUBSTRING_INDEX(`source`, '/', -1), 
       slug=SUBSTRING_INDEX(`alias`, '/', -1) 
   WHERE 1
于 2014-06-05T16:09:09.740 に答える
2

以下を使用して、ノードのエイリアスを取得できるはずですdrupal_lookup_path

// alias: return an alias for a given Drupal system path (if one exists).
$alias = drupal_lookup_path('alias', $node->nid);

Drupal マニュアル: drupal_lookup_pathまたはその逆、エイリアスからノード/内部パスを検索: drupal_get_normal_path

Rawkode が投稿したurl 関数function はほぼ同じように見えるので、個人的な好みによると思います。

参照: http://daipratt.co.uk/how-to-get-the-path-of-a-node-from-the-node-id-in-drupal/

于 2012-11-26T17:01:24.150 に答える
-2

Drupal データベースで url_alias テーブルを見つけ、次の SQL ステートメントを実行しました。

   UPDATE `url_alias` 
   SET src=SUBSTRING_INDEX(`src`, '/', -1), 
       dst=SUBSTRING_INDEX(`dst`, '/', -1) 
   WHERE 1

src が nid になり、dst がスラッグになりました。私はそれらの名前を変更することができINSERT INTO wp_postsますpost_name

于 2012-11-26T17:13:04.863 に答える