ОК Полный код:
<?php
//check to see whether the user is an admin or not.
if (is_admin()) {
function wpsc_display_products_seo(){
global $wpdb;
$productList = $wpdb->get_results("SELECT * FROM " . WPSC_TABLE_PRODUCT_LIST . " ORDER BY name ASC");
echo get_admin_page_parent();
$path = 'admin.php?page=wpsc_product_seo_details';
$url = admin_url($path);
?>
<h2><?php _e('Products List','wpsc'); ?></h2>
<p>Below is a list of products. Select a product to edit it's SEO properties.</p>
<table>
<tr>
<td></td>
<td>Product Name</td>
<td>Meta Title</td>
<td>Meta Description</td>
<td>Edit</td>
</tr>
</table>
<table>
<?php if($productList) : ?>
<?php foreach($productList as $product) : ?>
<?php $meta = getProductMeta($product->id); ?>
<tr style="background:#fff;">
<td width="200"><?php echo $product->name; ?></td>
<td width="300"><?php getVal($meta, 'meta_title'); ?></td>
<td width="200"><?php getVal($meta, 'meta_description'); ?></td>
<td width="200"><?php getVal($meta, 'meta_keywords'); ?></td>
<td width="200"><a href="<?php echo $url; ?>">Edit</a></td>
</tr>
<?php endforeach; ?>
<?php endif; ?>
</table>
<?php
}
function wpsc_product_seo_details()
{
echo "<h2>Hello</h2>";
}
function getProductMeta($id)
{
global $wpdb;
$meta = $wpdb->get_results("SELECT * FROM " . WPSC_TABLE_PRODUCT_META . " WHERE product_id = $id");
if($meta)
{
return $meta;
} else {
return null;
}
}
function getVal($RS, $key)
{
if($RS)
{
if (property_exists($RS, $key))
{
return $RS->$key;
}
}
return null;
}
function wpsc_add_seo_admin_pages($page_hooks, $base_page) {
$page_hooks[] = add_submenu_page($base_page, __('SEO For Products','wpsc'), __('SEO For Products','wpsc'), 7, 'wpsc-module-seo', 'wpsc_display_products_seo');
return $page_hooks;
}
add_filter('wpsc_additional_pages', 'wpsc_add_seo_admin_pages',10, 2);
}
?>
СТАРЫЙ ПОСТ
Привет, народ,
В настоящее время я пишу плагин для моего клиента в WordPress. Проблема, с которой я сталкиваюсь, заключается в том, что когда пользователь нажимает кнопку «Изменить», чтобы изменить запись, я не уверен, как создать ссылку администратора для этого.
т.е.
<a href="<?php echo get_bloginfo('url'); ?>/wp-admin/admin.php?page=wpsc_product_seo_details">Edit</a>
function wpsc_product_seo_details()
{
echo "<h2>Hello</h2>";
}
Я знаю, что моя разметка для тега, вероятно, неверна, но я просто тестировал. Нужно ли регистрировать крючок для этого.
wpsc_product_seo_details()
? Вы как-то добавили его в свое меню?Ответы:
Я не уверен, что вы пытаетесь сделать.
Ссылки администратора могут быть удобно созданы с помощью
admin_url()
функции, например:С чем именно у вас проблемы?
источник
edit_post_link()
что генерирует ссылки для редактирования отдельных сообщений.У вас есть проблемы при создании страницы администрирования ?
источник
Просто некоторая информация, чтобы пометить на обсуждение, и это может быть полезно вам позже ..
Когда вы находитесь на странице плагина, задаются различные переменные администратора, вы можете создать базовый URL из этих переменных и генерировать ссылки оттуда, предполагая, что вы хотите, чтобы они указывали на текущую страницу плагина.
Хотите добавить свои собственные запросы в этот URL, просто добавьте их в переменную, созданную выше, используя
add_query_arg
...По крайней мере, теоретически это должно работать, я не тестировал код, но не вижу причин, по которым он не будет работать :)
источник
$hook_suffix
глобальный. Также вы можете передать ассоциативный массив материала в качестве первого аргументаadd_query_arg()
вместо нескольких вызовов.$my_hook = add_xxxx_page
в комментариях к коду,$my_hook
она не будет заменой,$plugin_page
потому что это разные вещи. Сам код здоров и работает.$my_hook
вместо этого var, потому что они обычно имеют одинаковое значение. Не знаете, чем они отличаются, посмотрите, как они$plugin_page
заполнены (wp-admin / admin.php), а затем посмотрите, как создается это значение меню.Решено!
Попробуйте усложнить ситуацию, когда простое условное условие выполнит трюк в основной функции, вызываемой со страницы.
источник