簡體   English   中英

Wordpress自定義帖子類型根據自定義字段重寫永久鏈接

[英]Wordpress Custom post type rewrite permalink based on custom field

我需要能夠將自定義帖子類型帖子的永久鏈接重寫為:

{post-id} .domain.com

並且如果該帖子的{custom-field-1}具有值,則執行以下操作:

{custom-field-1} .domain.com

是否可以使用wp_rewrite api來做到這一點,或者在后期注冊代碼中如何做?

順便說一句-我現在的(糟糕)方法是:

  1. 將通配符添加到我的域(* .domain.com)。

  2. 在我的索引文件中,我用php檢查url是什么,以及它是否是ubdomain。

  3. 如果是的話,我得到了子域的一部分(“ that-part” .domain.com),並檢查我的帖子中特定自定義字段中是否存在帶有該值的帖子,或者是否存在具有此ID的帖子,是否存在將$ post數據設置為該帖子,並包括該帖子類型的正確模板文件。

我知道這是一個不好的方法。 但這是我目前所知道的唯一方法,希望您能幫助您找到更好的解決方案。

您已經嘗試了什么? 到目前為止, wp_rewrite似乎是最簡單的解決方案。

不知道如何在不使用任何.htaccess修改的情況下對子域執行此操作。 但是,如果基於根域; 以下[unested]解決方案可能會起作用:

function custom_rewrite() {
  if ( ! get_post_meta( 'your_key', get_the_ID() ) ) {
    add_rewrite_rule( '^' . get_the_ID(), 'index.php?post_id=' . get_the_ID() . ', 'top' );
  } else {
    add_rewrite_rule( '^' . get_post_meta( 'your_key', get_the_ID() ), 'index.php?post_id=' . get_the_ID() . ', 'top' );
  }
}
add_action( 'init', 'custom_rewrite' );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM