Удалить определенную функцию из родительской темы Wordpress
Я пытаюсь удалить действие "meta_box" из родительской темы function.php, но у меня ничего не получается.
Я уже попробовал много функций, но я думаю, что я не очень хорошо. Вот некоторые функции, которые я пытался применить:
if (!function_exists('add_meta_box')) {
function add_meta_box() {add_meta_box( 'portfolio-meta-boxes', __('Portfolio Options','raw'), 'child_display_portfolio_meta_box', 'udt_portfolio', 'normal', 'high' );
}
}
function child_display_portfolio_meta_box() {...}
Или же
add-action('after_theme_setup', 'remove_fonction_parent');
function remove_fonction_parent() {
function remove_fonction_parent() {
remove_meta_box('page_layout','display_portfolio_meta_box');
add_meta_box('page_layout','child_display_portfolio_meta_box');
}
function child_display_portfolio_meta_box() {...}
И некоторые другие способы, но, к сожалению, это не работает...
Я хочу заменить функцию, которая вызывает 3 "шаблона" ("По умолчанию", "Полноразмерные мультимедийные материалы", "Без рекомендуемых медиафайлов"), на мою одну функцию и 2 моих шаблона.
Вот код, который я хочу удалить / изменить, особенно ту часть, которая вызывает макет страницы:
function create_portfolio_meta_box() {
global $key_portfolio;
if( function_exists( 'add_meta_box' ) ) {
add_meta_box( 'portfolio-meta-boxes', __('Portfolio Options','raw'), 'display_portfolio_meta_box', 'udt_portfolio', 'normal', 'high' );
}
}
function display_portfolio_meta_box() {
global $post, $meta_boxes_portfolio, $key_portfolio;
?>
<div class="form-wrap">
<?php
wp_nonce_field( plugin_basename( __FILE__ ), $key_portfolio . '_wpnonce', false, true );
foreach($meta_boxes_portfolio as $meta_box) {
$data = get_post_meta($post->ID, $key_portfolio, true);
?>
<?php if($meta_box[ 'name' ]=='display_title') { ?>
<div class="form-field">
<label for="<?php echo $meta_box[ 'name' ]; ?>"><?php echo $meta_box[ 'title' ]; ?></label>
<input type="text" id="<?php echo $meta_box[ 'name' ]; ?>" name="<?php echo $meta_box[ 'name' ]; ?>" value="<?php if(isset($data[ $meta_box[ 'name' ] ])) { echo htmlspecialchars( $data[ $meta_box[ 'name' ] ] ); } ?>" />
<p><?php echo $meta_box[ 'description' ]; ?></p>
</div>
<?php } else if($meta_box[ 'name' ]=='teaser') {?>
<div class="form-field">
<label for="<?php echo $meta_box[ 'name' ]; ?>"><?php echo $meta_box[ 'title' ]; ?></label>
<textarea id="<?php echo $meta_box[ 'name' ]; ?>" name="<?php echo $meta_box[ 'name' ]; ?>"><?php if(isset($data[ $meta_box[ 'name' ] ])) { echo htmlspecialchars( $data[ $meta_box[ 'name' ] ] ); } ?></textarea>
<p><?php echo $meta_box[ 'description' ]; ?></p>
</div>
<?php } else if($meta_box[ 'name' ]=='page_layout') { ?>
<div class="form-field">
<label for="<?php echo $meta_box[ 'name' ]; ?>"><?php echo $meta_box[ 'title' ]; ?></label>
<select id="<?php echo $meta_box[ 'name' ]; ?>" name="<?php echo $meta_box[ 'name' ]; ?>" style="min-width:200px;">
<option value="default" <?php if(isset($data[$meta_box['name']])) selected($data[$meta_box['name']],'default'); ?>>Default</option>
<option value="full-width-media" <?php if(isset($data[$meta_box['name']])) selected($data[$meta_box['name']],'full-width-media'); ?>>Full Width Featured Media</option>
<option value="without-featured-media" <?php if(isset($data[$meta_box['name']])) selected($data[$meta_box['name']],'without-featured-media'); ?>>Without Featured Media</option>
</select>
<p><?php echo $meta_box[ 'description' ]; ?></p>
</div>
<?php } else if($meta_box[ 'name' ]=='display_media_caption') { ?>
<div class="form-field">
<label for="<?php echo $meta_box[ 'name' ]; ?>"><?php echo $meta_box[ 'title' ]; ?></label>
<input type="text" id="<?php echo $meta_box[ 'name' ]; ?>" name="<?php echo $meta_box[ 'name' ]; ?>" value="<?php if(isset($data[ $meta_box[ 'name' ] ])) { echo htmlspecialchars( $data[ $meta_box[ 'name' ] ] ); } ?>" />
<p><?php echo $meta_box[ 'description' ]; ?></p>
</div>
<?php }
}?>
</div>
Может ли кто-нибудь объяснить мне, что не так с моими тестами, и помочь мне найти решение?
Большое спасибо и извините за мой "не очень хороший" английский язык:)
1 ответ
Это руководство помогло мне удалить метабокс из темы WP:
Надеюсь, это поможет в вашем случае.