wordpress自定义帖子类型 - 损坏的发布按钮

时间:2013-06-26 07:37:55

标签: wordpress wordpress-plugin backend custom-post-type meta-boxes

我创建了一个图库帖子类型(作为插件的一部分),除了标题和一些元信息之外还包含一个wp_list_table,用于查询当前帖子为{的那些附件{1}}。突然我的发布按钮停止工作时遇到了问题。无论我是创建新画廊还是编辑旧画廊,一旦点击更新/发布,我的更改就会丢失,我最终会post_parent。 有谁知道这是什么一回事?

我能够找出问题所在的位置。它位于我的list_table类中,它继承自edit.php。在评论出一些不重要的功能后,我最终得到了一个不同的错误,但仍然没有新的或更新的画廊。现在我收到wp_list_table页面。

即使是最基本的课程也行不通......

are you sure you want to do this

在插件类的构造函数中,我使用了
if( ! class_exists( 'WP_List_Table' ) ) { require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' ); } class Yard_Attachment_Table extends WP_List_Table { function __construct() { global $status, $page; parent::__construct( array( 'singular' => 'yard Attachment', 'plural' => 'yard Attachments', 'ajax' => false ) ); } function column_default($item, $column_name) { return 'default'; } function get_columns(){ $columns = array( 'checkbox' => '<input type="checkbox" />', //for simplicity its not 'cb' 'thumb' => 'Thumbnail', 'title' => 'Titel', 'pos' => 'Position' ); return $columns; } function prepare_items() { global $wpdb; $columns = $this->get_columns(); $hidden = array(); $sortable = $this->get_sortable_columns(); $this->_column_headers = array($columns, $hidden, $sortable); if (isset($_REQUEST['post'])) { $query = " SELECT * FROM $wpdb->posts WHERE post_type = 'attachment' AND post_parent = {$_REQUEST['post']}"; $data = $wpdb->get_results($query, ARRAY_A); } else { $data = array(); } $this->items = $data; } }
add_action('add_meta_boxes_yard_gallery', array($this, 'yard_metaboxes'));我使用yard_metaboxes并在我作为回调的函数中创建了我的表类的add_meta_box实例,我调用new和{{1} }



在我的页面上转换error_reporting会因这些消息而消失:

prepare_items()

BTW我没有本地化 请帮忙!如果我有更多的声望,我会提供它。

添加元框代码

在我的插件文件中:

display()

在我的课堂文件中,元框方法位于底部:

Strict Standards: Only variables should be passed by reference in /Applications/MAMP/htdocs/Web/ChristophRokitta/wp v.1.0/wp-includes/pomo/mo.php on line 210

Warning: Cannot modify header information - headers already sent by (output started at /Applications/MAMP/htdocs/Web/ChristophRokitta/wp v.1.0/wp-includes/pomo/mo.php:210) in /Applications/MAMP/htdocs/Web/ChristophRokitta/wp v.1.0/wp-includes/pluggable.php on line 876

1 个答案:

答案 0 :(得分:0)

  

严格标准:只有变量应该通过引用传递到/ Applications / MAMP / htdocs / Web / ChristophRokitta / wp v.1.0 / wp-includes / pomo / mo.php第210行

错误消息告诉所有内容。 “... / popo / mo.php”文件与 Wordpress翻译有关(与之相关)。 (我敢打赌你正在使用带有德语文件的Wordpress)。

我看不出你在这里发布的代码有什么问题,但有些东西干扰了翻译。查看错误消息告诉我们的内容,Wordpress尝试翻译的某些变量无法翻译,因为它不是正确的类型。

  

警告:无法修改标头信息 - 已在/ Applications /中发送的标头(在/ Applications / MAMP / htdocs / Web / ChristophRokitta / wp v.1.0 / wp-includes / pomo / mo.php:210处开始输出)第876行的MAMP / htdocs / Web / ChristophRokitta / wp v.1.0 / wp-includes / pluggable.php

这是上一条错误消息的逻辑结果,以及Wordpress尝试发送到浏览器的标题。

发生了什么:第一条错误消息被推送到客户端并刷新到浏览器屏幕。接下来,Wordpress尝试发送它的常用标题并在执行此操作时产生错误,因为在将任何内容发送到客户端之前必须发送标头。

换句话说:当您向屏幕回显某些内容然后尝试发送“header(...)”信息时,始终会出现“无法修改标题信息”错误。在这种情况下,转换问题会产生第一条错误消息,然后Wordpress会尝试发送标头,这会失败并产生第二条错误消息。

<强> TIPS

  • 检查您正在做的与翻译有关的所有内容(阅读:无论您在哪里传递“德语”和/或“英语”语言字符串)

甚至更重要

  • 确保您实际传递了正确的类型 ...查看错误和您的代码,很可能是您传递了一个类,一个类引用,或某个地方的其他物体而不是预期的变量。