2017-06-18 17 views
0

Wordpressのテーマをテーマにしたチャイルド勉強をしています。 親テーマはカスタム投稿タイプを作成します。カスタム投稿タイプは、削除したいプロパティ「再書き込み」プロパティを持ちます。Wordpressの親テーマからカスタムpostTypeプロパティを変更します。

'rewrite' \t => array(
 
\t 'slug' => 'project' 
 
)
私はそれを変更/このようなカスタムポストタイプexcisting上の分類法を追加することが可能であることがわかった: register_taxonomy_for_object_type( 'カテゴリ'、 'C​​USTOM_POST_NAMEを');

しかし、この(およびその他の)プロパティを変更することは可能ですか?

答えて

1

ここでのキーはregister_post_typeへの呼び出しです。これは実際にWordPress内に投稿タイプを登録するものです。

docsでは、この関数は/wp-includes/post.phpで定義されています。関数の完全なソースコードも見ることができます。これは非常に便利です。

関数のソースコードには、do_action()という単一のものしか存在せず、ポストタイプが完全に登録された後に呼び出されます。

したがって、次に見る場所はWP_Post_Typeクラスです。私たちは再び完全なソースコードを展開することができます(または、あなたの好きなテキスト/コードエディタでソースコードを見ることができます)。最初に調べる場所はクラスの__construct()メソッドです。

public function __construct($post_type, $args = array()) { 
    $this->name = $post_type; 

    $this->set_props($args); 
} 

をので、あなたが見ることができるように、名前が送信されたパラメータの配列がある渡さ$args(と$this->nameに割り当てられ、その後、メソッドset_props()が呼び出されます。これは、現在(ワードプレス4.8)は、次の要素で構成さ。register_post_type()

を見て次の論理的な場所set_props()方法の中で、その方法のほとんどは非常に先頭に次のコードです:。

/** 
    * Filters the arguments for registering a post type. 
    * 
    * @since 4.4.0 
    * 
    * @param array $args  Array of arguments for registering a post type. 
    * @param string $post_type Post type key. 
    */ 
    $args = apply_filters('register_post_type_args', $args, $this->name); 

ビンゴ!渡された$argsは、投稿タイプの初期化に使用される前にregister_post_type_argsフィルタを通過します。

パズルの最後の部分は、独自の関数を作成してregister_post_type_argsフィルタに添付して、正しい投稿タイプを変更していることを確認してください。タイプ。私は、これはそこにあなたがそれを行うにもすることができます(これはWordPressのソースコードに飛び込むすることができますどのように簡単に見ますと、誰を助けることを願っています

function my_filter_register_post_type_args($args, $post_type) { 
    // We only want to edit the 'CUSTOM_POST_NAME' post type - if that's not it, then bail 
    if ('CUSTOM_POST_NAME' != $post_type) { 
     return $args; 
    } 

    $args['rewrite'] = false; 

    return $args; 
} 
add_filter('register_post_type_args', 'my_filter_register_post_type_args', 10, 2); 

:ここであなたを助けるためのサンプルコードですあなたのブラウザーから:))を検索して、ただの検索ではないようなものを見つけ出してください。いくつかの批判的思考では、何かを調整する最良の方法が何であるかを理解するために、ブレッドクラム・トレイルに従うことができます。

関連する問題