Первый плагин, проблема с get_pages

Это мой первый плагин из более или менее царапины, и я думаю, что я почти получил его работу, но еще не совсем там. Точка плагина – это получить все дочерние страницы, отобразить их миниатюру, название и т. Д. Теперь, когда я написал плагин, он дает мне 0 выход … Почему? Могут быть много вещей, которые я, вероятно, сделал неправильно, но я решил начать поиск ошибок в части get_pages. Если я добавлю print_r('$child_query') и $child_query = get_pages($args); должно ли это, по крайней мере, что-то выводить?

Вопрос: почему print_r('$child_query') ничего не возвращает?

Мой код проблемный код …

 <?php /* Plugin Name: Child Pages Querry Author: Sten Winroth Plugin URI: Description: Version: 1.0 Author URI: Domain Path: /languages Text Domain: */ new childPagesQuerry(); class childPagesQuerry { private $ver = '1.0'; function __construct(){ add_action("init", array(&$this, "init")); add_shortcode('child_query', 'child_query_frontend'); } public function init() { add_post_type_support('page', 'excerpt'); } private function child_query(){ // Determine parent page ID $parent_page_id = ( '0' != $post->post_parent ? $post->post_parent : $post->ID ); // Get child pages as array $args = array( 'child_of' => $parent_page_id, 'post_type' => 'page', 'orderby' => 'menu_order', 'order' => 'ASC', 'posts_per_page' => 100, ); $child_query = get_pages($args); print_r($child_query); $child_pages = array(); while ( $child_query->have_posts()) { $child_query->the_post(); if ( '' != get_the_title() ) { $title = get_the_title(); $excerpt = get_the_excerpt(); $id = get_the_ID(); $thumbnail = get_the_post_thumbnail('(thumbnail'); $permalink = get_permalink(); $child_pages[] = array('title' => $title, 'excerpt' => $excerpt, 'id' => $id, 'thumbnail' => $thumbnail, 'permalink' => $permalink); } } } //end child_query private function child_query_frontend($child_pages) { echo '<div class="row-fluid">'; echo '<ul class="thumbnails">'; foreach ($child_pages as $key => $value) { ?> <li class="span3"> <div class="thumbnail"> <img src="<?php echo $value['thumbnail']; ?>" alt="" height="42" width="42"> <div class="caption"> <h3><?php echo $value['title']; ?></h3> <p><?php echo $value['excerpt'] ?></p> <p><a class="btn btn-primary" href="<?php echo $value['permalink']; ?>">Läs mer.</a></p> </div> </div> </li> <?php } echo '</ul><!--thumbnails-->'; echo '</div><!--row-fluid-->'; } //end frontend }// end class 

Solutions Collecting From Web of "Первый плагин, проблема с get_pages"

Взгляните на это, чтобы вы начали. Тогда работа отсюда. Было много ошибок, и я думаю, что это прояснится.

 <?php /* Plugin Name: Child Pages Query Author: Sten Winroth Plugin URI: Description: Version: 1.0 Author URI: Domain Path: /languages Text Domain: */ class childPagesQuery { private $ver = '1.0'; function __construct() { add_action( 'init', array($this, 'init') ); } public function init() { add_shortcode( 'child_query', array($this, 'child_query_frontend') ); } public function child_query() { global $post; // Determine parent page ID $parent_page_id = ( '0' != $post->post_parent ? $post->post_parent : $post->ID ); // Get child pages as array $args = array( 'child_of' => $parent_page_id, 'post_type' => 'page', 'orderby' => 'menu_order', 'order' => 'ASC', 'posts_per_page' => 100, ); $child_query = get_pages($args); print_r($child_query); } public function child_query_frontend( $atts ) { /**/ $child_query = $this->child_query(); echo '<pre style="font-size:0.7em;">'; print_r($child_query); echo "</pre>\n"; /**/ } } new childPagesQuery(); 

EDIT : уточнить переменную $ atts, переданную child_query_frontend() .

Если вы использовали свой короткий код следующим образом:

 [child_query] 

Ничто не будет передано этой переменной, оно будет пустым, но оно все равно должно быть там, потому что функции короткого кода будут пытаться передать ему пустой массив.

Если вы используете свой короткий код следующим образом:

 [child_query post_id="5"] 

Тогда $ atts будет что-то вроде $ atts ['post_id']. Взгляните на документацию API Shortcode на WordPress.org, чтобы узнать больше о том, как работают атрибуты, и о лучших примерах их использования.