Wordpressのテーマをテーマにしたチャイルド勉強をしています。 親テーマはカスタム投稿タイプを作成します。カスタム投稿タイプは、削除したいプロパティ「再書き込み」プロパティを持ちます。Wordpressの親テーマからカスタムpostTypeプロパティを変更します。
'rewrite' \t => array(
\t 'slug' => 'project'
)
しかし、この(およびその他の)プロパティを変更することは可能ですか?
Wordpressのテーマをテーマにしたチャイルド勉強をしています。 親テーマはカスタム投稿タイプを作成します。カスタム投稿タイプは、削除したいプロパティ「再書き込み」プロパティを持ちます。Wordpressの親テーマからカスタムpostTypeプロパティを変更します。
'rewrite' \t => array(
\t 'slug' => 'project'
)
しかし、この(およびその他の)プロパティを変更することは可能ですか?
ここでのキーは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);
:ここであなたを助けるためのサンプルコードですあなたのブラウザーから:))を検索して、ただの検索ではないようなものを見つけ出してください。いくつかの批判的思考では、何かを調整する最良の方法が何であるかを理解するために、ブレッドクラム・トレイルに従うことができます。