Custom meta box includes

时间:2012-09-12 作者:Rob Fyffe

我有一些问题,包括我的自定义元框文件。我有这样一个结构:

发布元数据。php

cmb公司

加载Triser\\u meta\\u框。php启动。php显示。php保存。php在我的博文meta中。php我有以下内容:

// Load Meta Boxes
function add_custom_meta_box()
{
    require_once dirname( __FILE__ ) . \'/cmb/teaser_meta_box/load.php\';
}
add_action(\'add_meta_boxes\', \'add_custom_meta_box\');

// Initiate Meta Box Fields
require_once dirname( __FILE__ ) . \'/cmb/epteaser_meta_box/initiate.php\';

// Display Meta Box Fields
require_once dirname( __FILE__ ) . \'/cmb/epteaser_meta_box/display.php\';

// Save Meta Box Fields
function save_custom_meta($post_id)
{
global $meta_fields_epteaser, $post; // Need to put name of each meta field here

// verify nonce  
if (!wp_verify_nonce($_POST[\'custom_meta_box_nonce\'], basename(__FILE__)))
    return $post_id;
// check autosave  
if (defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE)
    return $post_id;
// check permissions  
if (\'page\' == $_POST[\'post_type\']) {
    if (!current_user_can(\'edit_page\', $post_id))
    return $post_id;
} elseif (!current_user_can(\'edit_post\', $post_id)) {
    return $post_id;
}

    require_once dirname( __FILE__ ) . \'/cmb/epteaser_meta_box/save.php\';

}
add_action(\'save_post\', \'save_custom_meta\');
当我尝试这样做时,元框不会按其应该的方式工作,但是我没有收到任何错误,比如include是错误的等。如果我尝试将代码直接放入文件中以启动和显示元框,那么它就会工作。

关于为什么这两个包含项在包含时似乎不起作用,有什么想法吗?

谢斯罗伯特

1 个回复
SO网友:kaiser

在WordPress中调试可以/应该在wp-config.php 您的local(!!)安装-never 在现场执行此操作,尤其是not when you got caching 已激活!

define( \'WP_CACHE\',            false  );

// Show the development files for scripts/stylesheets and don\'t combine them
define( \'COMPRESS_CSS\',        false  );
define( \'SCRIPT_DEBUG\',        true );
define( \'COMPRESS_SCRIPTS\',    false  );
define( \'CONCATENATE_SCRIPTS\', false  );
define( \'ENFORCE_GZIP\',        false );

// PHP and WP internal debug output + log
error_reporting( E_ALL );
@ini_set( \'display_errors\', 1 );
define( \'SAVEQUERIES\',      true );
define( \'WP_DEBUG\',         true );
define( \'WP_DEBUG_LOG\',     true ); // file: ~/wp-content/debug.log
@ini_set( \'log_errors\',     \'On\' );
@ini_set( \'error_log\',      WP_CONTENT_DIR.\'/php_error.log\' );
define( \'WP_DEBUG_DISPLAY\', true );
那么always 将调用包装在以下内容中(假设您忽略警告并在实时安装中使用):

轮到了all 缓存解决方案-否则一些访问者仍然可以看到您的调试输出if ( is_user_logged_in() ) { /* debug here */; }if ( current_user_can( \'manage_options\' ) ) { /* debug here */; }

WordPress文件路径(&H);URI/URL函数路径(&H);URL地址

// The path to your current file
plugin_dir_path( __FILE__ );

// The URL to your current file
plugin_dir_url( __FILE__ );
那些↑ 来的时候已经被砍掉了。

如果只需要foldername,请将其包装在内部basename().

如果需要管理员URL,请使用get_admin_url( get_current_blog_id() ). 使用更简单self_admin_url(), 它会自行决定您是在网络、单个博客还是在用户网络管理页面上。

结束