版本(<;=3.6.1它看起来像wp_link_query()
用于在“链接生成器”中按或链接到现有内容时显示内部帖子/页面:
wp_link_query()
定义于/wp-includes/class-wp-editor.php
.
通过wp_ajax_wp_link_ajax()
, 在文件中定义/wp-admin/includes/ajax-actions.php
.
这些函数没有任何用于更改查询的显式筛选器。
版本3.7(?)
看起来在引入过滤器的过程中出现了一些补丁
wp_link_query_args
您可以在此处查看:
http://core.trac.wordpress.org/ticket/18042
里程碑设置为
3.7
, 所以这可能是你的幸运版本;-)
如果是这种情况,那么您可能会通过以下方式解决此问题:
示例1:
如果要手动列出自定义帖子类型:
/**
* Filter the link query arguments to change the post types.
*
* @param array $query An array of WP_Query arguments.
* @return array $query
*/
function my_custom_link_query( $query ){
// change the post types by hand:
$query[\'post_type\'] = array( \'post\', \'pages\' ); // Edit this to your needs
return $query;
}
add_filter( \'wp_link_query_args\', \'my_custom_link_query\' );
示例2:如果您只想删除一个自定义帖子类型,但保留所有其他类型,那么您可以尝试:
/**
* Filter the link query arguments to change the post types.
*
* @param array $query An array of WP_Query arguments.
* @return array $query
*/
function my_custom_link_query( $query ){
// custom post type slug to be removed
$cpt_to_remove = \'news\'; // Edit this to your needs
// find the corresponding array key
$key = array_search( $cpt_to_remove, $query[\'post_type\'] );
// remove the array item
if( $key )
unset( $query[\'post_type\'][$key] );
return $query;
}
add_filter( \'wp_link_query_args\', \'my_custom_link_query\' );
我用的是演示弹头
\'news\'
.