OK Código completo:
<?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);
}
?>
ANTIGUA POST
Hola chicos,
Actualmente estoy escribiendo un complemento para mi cliente en WordPress. El problema que tengo es que cuando un usuario hace clic en editar para cambiar un registro, no estoy seguro de cómo crear el enlace de administrador para hacerlo.
es decir
<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>";
}
Sé que mi marcado para la etiqueta probablemente sea incorrecto, pero solo estaba probando. ¿Necesito registrar un gancho para hacer esto?
wpsc_product_seo_details()
? ¿Lo agregaste a tu menú de alguna manera?Respuestas:
No estoy seguro de lo que estás tratando de hacer.
Los enlaces de administrador se pueden crear convenientemente con la
admin_url()
función, como esta:¿Con qué tienes problemas exactamente?
fuente
edit_post_link()
qué genera enlaces de edición para publicaciones individuales.¿Tienes problemas para crear la página de administración ?
fuente
Solo alguna información para etiquetar en la discusión, y esto puede ser útil para usted más tarde.
Cuando está en una página de complementos, se establecen varias variables de administración, puede crear una URL base a partir de esas variables y generar enlaces desde allí, suponiendo que desee que apunten a la página del complemento actual.
Desea agregar sus propios vars de consulta en esa URL, simplemente agréguelos a la variable creada anteriormente usando
add_query_arg
...Debería funcionar en teoría al menos, no probé el código, pero no veo ninguna razón para que no funcione ... :)
fuente
$hook_suffix
global. También puede pasar una matriz asociativa de cosas como primer argumento enadd_query_arg()
lugar de llamar varias veces.$my_hook = add_xxxx_page
en los comentarios de código,$my_hook
no funcionará como reemplazo$plugin_page
porque son cosas diferentes. El código en sí es sólido y funciona.$my_hook
en lugar de esa var, porque generalmente tienen el mismo valor. No estoy seguro de cómo son diferentes, eche un vistazo a cómo$plugin_page
se llena (wp-admin / admin.php), luego eche un vistazo a cómo se crea ese valor de menú.¡Resuelto!
Intenta complicar demasiado las cosas cuando un simple condicional hubiera hecho el truco en la función principal llamada desde la página.
fuente