どのように私は "既存のコンテンツへのリンク"で与えられたリンクをフィルタリングすることができます。
例えば:
上の画像のように。 WSP BANNERを表示させたいだけです。
wSP BANNER&CALENDARはカスタムPOSTタイプです。
どんな助けでもかなりのものになるでしょう。
現時点では、この目的に使用できるフィルタは用意されていません。リクエストに チケット が投稿されました。もうすぐチケットが届くことを願います。
カスタム投稿タイプをハードコーディングするよりも、フィルタフックを作成して使用する方が適切です。
それまでは、独自のフィルタを作成できます。
Includes/class-wp-editor.phpを開き、712行目で以下の変更を行います。
$pt_names = apply_filters('custom_insert_link_suggestion_filter',array_keys( $pts ));
すべてのパブリック投稿タイプを取得する代わりに、新しいフィルタを追加しました
次に、テーマに次のコードを追加して、内部リンクのカスタム投稿タイプをフィルタリングします
function my_filter_function($allowed_post_types)
{
if( condition chek)
{
return array('page','your custom post types');
}
}
add_filter('custom_insert_link_suggestion_filter','my_filter_function',10,1);
非常に緊急の場合は、class-wp-editorの711行目を次のように編集してください。
$pts = get_post_types( array( 'name' => 'your_post_type','public' => true ), 'objects' );
、それ以外の場合はそのままにします
そのためのプラグインを書きました。これは ここからプラグインリポジトリ からダウンロードできます。
それをインストールしてから、このフィルタをあなたのfunctions.php
に入れてください。
add_filter( "link_to_existing_content_post_types", "my_link_to_existing_content_post_types" );
function my_link_to_existing_content_post_types( $post_types ) {
$post_types = array( "post", "page" );
return $post_types;
}
このプラグインは内部リンクをショートコードに置き換える機能も持っています。これを使いたくない場合は、次のように無効にします。
add_filter( "link_to_existing_content_use_shortcode", "disable_link_to_existing_content_shortcode" );
function disable_link_to_existing_content_shortcode() {
return false;
}
詳しい説明はここにあります: https://wordpress.org/plugins/b09-link-to-existing-content/faq/
ファイルclass-wp-editor.php
、行番号を確認してください。 742以降リストにはフィルタが適用されていません。それで私はあなたがそれを変えることができないと思います!
さらに、同じファイル内の行番号。 689、このリストを取得するためのAJAXリクエストを介して関数wp_link_query
が呼び出されましたが、投稿タイプを変更するためのフィルタもありません
したがって、あなたはそれと一緒に暮らす必要があります! ;)