看看这个,开始吧。然后从这里开始工作。你有很多地方做错了,我想这会澄清的。
<?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]
不会向该变量传递任何内容,它将是空的,但它应该仍然存在,因为shortcode函数将尝试向它传递一个空数组。
如果您使用这样的短代码:
[child_query post_id="5"]
那么$atts将类似于$atts[\'post\\u id\']。看一看
Shortcode API documentation 在Wordpress上。org获取有关属性如何工作以及如何使用属性的更好示例的更多信息。