複数の書き換えルールが PHP カスタム記事にリンクします。
P粉393030917
P粉393030917 2023-07-27 12:19:25
0
1
428

私は PHP を初めて使用するので、いくつかのリンクの構造を変更するためにいくつかの書き換えルールを実行しようとしています。見つかったコードをいくつか試してみましたが、このコードは for ループで指定した最初のカスタム投稿タイプに対してのみ機能します。指定したすべてのカスタム投稿タイプ (これらの投稿タイプの名前は配列内にあります) のリンクを変更する for ループを作成したいのですが、書き換えルール コードは次のとおりです。

function mycustomname_link($post_link, $post = 0) { if($post->post_name === $name_of_my_post) { return home_url('new' .'/'. 'posts'.'/'. $post->post_name .'/'. $post->ID . '/'); } それ以外{ $post_link を返します; } } add_filter('post_type_link', 'mycustomname_link', 1,3); 関数 mycustomname_rewrites_init(){ add_rewrite_rule('new/posts/([^/] )/([0-9] )?$', 'index.php?post_type=nature_posts&p=$matches[1]&p=$matches[2] '、 '上'); flash_rewrite_rules(); } add_action('init', 'mycustomname_rewrites_init'); 

関数内に return ステートメントがあるため、最初の反復と最初のカスタム投稿名にのみ書き換えルールが適用されるようですが、指定されたすべての post_names で機能するように for ループを作成するにはどうすればよいですか?最初の反復で停止しないのですか?

P粉393030917
P粉393030917

全員に返信 (1)
P粉605233764

これを試してみてください:

mycustomname_link 関数に、$custom_post_types 配列を走査するループを追加しました。カスタム投稿タイプごとに、現在の投稿タイプが配列内のいずれかの名前と一致するかどうかを確認します。一致する場合は、書き換えルールが適用されます。
同様に、mycustomname_rewrites_init 関数に、すべてのカスタム投稿タイプの書き換えルールを登録するループを追加しました。各カスタム投稿タイプには独自の書き換えルールがあります。

この変更により、最初の反復で停止することなく、$custom_post_types 配列で指定されたすべてのカスタム投稿タイプに書き換えルールが適用されます。書き換えルールに含めるすべてのカスタム投稿タイプの名前で $custom_post_types 配列を更新してください。


リーリー
いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!