修改管理员 post 列表 buttons/dropdown
Modifying admin post list buttons/dropdown
我创建了自己的自定义 post 类型搜索过滤器,而不是有另一个菜单,我想将 select 选项附加到默认的 woocommerce 状态过滤器下拉列表 select。
我还想将 Filter
和 Search Orders
按钮的文本更改为 Go
。
这是我添加自己的下拉菜单的方法 select 但我想追加。
add_action( 'restrict_manage_posts', 'wpse45436_admin_posts_filter_restrict_manage_posts' );
function wpse45436_admin_posts_filter_restrict_manage_posts(){
$type = 'shop_order';
if (isset($_GET['post_type'])) {
$type = $_GET['post_type'];
}
//only add filter to post type you want
if ('shop_order' == $type){
//change this to the list of values you want to show
//in 'label' => 'value' format
$values = array(
'Ordered From Supplier' => 'ordered_supplier',
'Ready for Dispatch' => 'ready_dispatched',
'Despatched' => 'despatched',
'Delivered' => 'delivered',
'Returns' => 'returns',
);
?>
<select name="shop_order_status_2" class="chzn-done">
<option value="" selected><?php _e('Show All Order Statuses ', 'wose45436'); ?></option>
<?php
$current_v = isset($_GET['shop_order_status_2'])? $_GET['shop_order_status_2']:'';
foreach ($values as $label => $value) {
printf
(
'<option value="%s"%s>%s</option>',
$value,
$value == $current_v? ' selected="selected"':'',
$label
);
}
?>
</select>
<?php
}
}
我该如何做到这一点?我使用什么过滤器?
我相信您可以通过过滤 gettext()
来更改按钮文本。这是允许翻译按钮文本的原因,但它也可以被劫持用于此类目的。
add_filter( 'gettext', 'so_29631694_modify_filter_button_text' );
function so_29631694_modify_filter_button_text( $translated_text, $untranslated_text, $domain ){
if( is_admin() && 'Filter' == $untranslated_text){
$translated_text = 'Go';
}
return $translated_text;
}
或者你可以做一点 jQuery:
$('order-query-submit').attr('value', 'Go');
我创建了自己的自定义 post 类型搜索过滤器,而不是有另一个菜单,我想将 select 选项附加到默认的 woocommerce 状态过滤器下拉列表 select。
我还想将 Filter
和 Search Orders
按钮的文本更改为 Go
。
这是我添加自己的下拉菜单的方法 select 但我想追加。
add_action( 'restrict_manage_posts', 'wpse45436_admin_posts_filter_restrict_manage_posts' );
function wpse45436_admin_posts_filter_restrict_manage_posts(){
$type = 'shop_order';
if (isset($_GET['post_type'])) {
$type = $_GET['post_type'];
}
//only add filter to post type you want
if ('shop_order' == $type){
//change this to the list of values you want to show
//in 'label' => 'value' format
$values = array(
'Ordered From Supplier' => 'ordered_supplier',
'Ready for Dispatch' => 'ready_dispatched',
'Despatched' => 'despatched',
'Delivered' => 'delivered',
'Returns' => 'returns',
);
?>
<select name="shop_order_status_2" class="chzn-done">
<option value="" selected><?php _e('Show All Order Statuses ', 'wose45436'); ?></option>
<?php
$current_v = isset($_GET['shop_order_status_2'])? $_GET['shop_order_status_2']:'';
foreach ($values as $label => $value) {
printf
(
'<option value="%s"%s>%s</option>',
$value,
$value == $current_v? ' selected="selected"':'',
$label
);
}
?>
</select>
<?php
}
}
我该如何做到这一点?我使用什么过滤器?
我相信您可以通过过滤 gettext()
来更改按钮文本。这是允许翻译按钮文本的原因,但它也可以被劫持用于此类目的。
add_filter( 'gettext', 'so_29631694_modify_filter_button_text' );
function so_29631694_modify_filter_button_text( $translated_text, $untranslated_text, $domain ){
if( is_admin() && 'Filter' == $untranslated_text){
$translated_text = 'Go';
}
return $translated_text;
}
或者你可以做一点 jQuery:
$('order-query-submit').attr('value', 'Go');