我必须在插件的选项页面中获取博客的所有图像来源,我正在制作插件选项页面,如下所示..Plz查看它..
public function add_plugin_page(){
add_options_page('Settings Admin', 'Plugin_options', 'manage_options', 'test-setting-admin', array($this, 'create_admin_page'));
}
以下代码适用于我的插件选项页
public function create_admin_page(){
?>
<div class="wrap">
<?php screen_icon(); ?>
<form action="options.php" method="post" id="<?php echo $plugin_id; ?>_options_form" name="<?php echo $plugin_id; ?>_options_form">
<?php settings_fields($plugin_id.'_options'); ?>
<h2>kk Plugin Options » Settings</h2>
<table border="1" bordercolor="#FFCC00" style="background-color:#FFFFCC; margin-top:22px" width="25%" cellpadding="2" cellspacing="1">
<tbody>
<tr>
<td style="padding-left:8px;font-family:Verdana, Geneva, sans-serif;color:#666;"><h3>Blog Id:</h3></td>
<td><p><?php echo$abc?></p></td>
</tr>
<tr>
<td style="padding-left:8px;font-family:Verdana, Geneva, sans-serif;color:#666;"><h3>API Key:</h3></td>
<td><input type="text" name="kkpo_quote" value="<?php echo get_option('kkpo_quote'); ?>" /></td>
</tr>
</tbody>
</table>
<div id="mainCHImage" style="position:relative;height:'.$imgHeight.'px;width:'.$width.'px;">
<img id="paletlyIcon" style="position:absolute;left:'.$imgWidth.'px;top:'.$imgHeight.'px;z-index:9999;cursor:pointer;background:none;border:none;" src="http://Images/favIcon.png" onclick="get_images()">'.
<img style="background:none;border:none;"></div>
</form>
</div>
<?php
}
$ abc是我想要所有图像源的变量..因为我已经写了一个单独的函数
public function get_images(){
if(is_single() || is_page() || is_home()||!is_admin() ){
global $post;
global $wpdb;
$query_images = new WP_Query( $query_images_args );
$images = array();
foreach ( $query_images->posts as $image) {
$images[]= wp_get_attachment_url( $image->ID );
$abc=($images);
echo $abc;
}
}
}
但我收到错误
ReferenceError: get_images is not defined
[Break On This Error]
get_images();
我在我的构造中添加了该功能,即
add_action('IMages_grab', array(&$this, 'get_images'));
add_filter('IMages_grab', array(&$this, 'get_images'));
答案 0 :(得分:0)
老兄,你的代码在很多层面都是错误的! (我现在只表达我自己的意见。)
您有$query_images = new WP_Query( $query_images_args );
,但未定义$query_images_arg
(通过定义参数修复)
您正在构建某种管理菜单,但随后您将!is_admin()
的条件置于无效(通过决定/定义其运行位置来修复)
您有很多语法错误,例如echo$abc?
(已修复为echo $abc
)
3.1。 $ abc应该是一个数组?然后你甚至不能使用echo print_r($abc);
您正在使用settings APi
,这是序列化数组,然后您调用echo get_option('kkpo_quote');
之类的单个选项(修复决定使用哪种方法)
这是最重要的一个,为什么人们希望将整个网站的所有图像都放到一个数组中,还有更多,回应它?你能想象一下拥有10,000张图片甚至只有300张图片的网站会发生什么吗?
现在,你的代码显然是某种尝试或者是切割的练习。粘贴插件开发。并给出一个好的答案意味着你将不得不更好地解释你的意图,但你可以从修复我在上面所写的内容开始,而不是完整,列出......
答案 1 :(得分:0)
我同意@ObmerkKronen答案的大部分内容,但是点5
。在我看来,问题的核心是哪个。
是的,想要一个包含所有帖子的数组(附件是帖子类型)是有效的。 10K阵列可能不会那么大,取决于它的使用方式。
以下示例显示管理员通知,其中包含指向媒体库中所有图像的链接。 Consult the Codex了解此处使用的功能。应该很容易将其改编为插件的选项页面。
add_action( 'admin_notices', 'get_all_images_so_15985067' );
function get_all_images_so_15985067()
{
// get all images
$args = array(
'post_type' => 'attachment',
'post_mime_type' => 'image',
'numberposts' => -1,
);
$_attachments = get_posts( $args );
// no images found, do nothing
if ( empty( $_attachments ) )
return;
// build array only with IDs
$attachments = array();
foreach ( $_attachments as $key => $val ) {
$attachments[ $val->ID ] = $_attachments[ $key ];
}
// print thumbnail links
echo '<div class="updated">';
foreach ( $attachments as $att_id => $attachment ) {
echo wp_get_attachment_link(
$att_id,
'thumbnail',
false,
false,
$attachment->post_title
) . "<br>";
}
echo '</div>';
}