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);
}
?>
POSTO ANTIGO
Oi pessoal,
Atualmente, estou escrevendo um plugin para o meu cliente no wordpress. O problema que estou tendo é que quando um usuário clica em editar para alterar um registro, não tenho certeza de como criar o link de administrador para fazer isso.
ie
<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>";
}
Sei que minha marcação para a tag provavelmente está errada, mas eu estava apenas testando. Preciso registrar um gancho para fazer isso.
wpsc_product_seo_details()
? Você o adicionou ao seu menu de alguma forma?Respostas:
Não tenho certeza do que você está tentando fazer.
Os links de administrador podem ser convenientemente criados com a
admin_url()
função, assim:Com o que exatamente você tem problemas?
fonte
edit_post_link()
que gera links de edição para postagens individuais.Você tem problemas para criar a página de administração ?
fonte
Apenas algumas informações para marcar na discussão, e isso pode ser útil para você mais tarde.
Quando você está em uma página de plug-in, várias variáveis administrativas são definidas, você pode criar um URL base a partir dessas variáveis e gerar links a partir daí, supondo que você queira que aponte para a página atual do plug-in.
Deseja adicionar seus próprios vars de consulta a esse URL, basta adicioná-los à variável criada acima usando
add_query_arg
...Deveria funcionar em teoria, pelo menos, não testei o código, mas não vejo razão para não funcionar .. :)
fonte
$hook_suffix
global. Também é possível passar o conjunto associativo de coisas como primeiro argumento para, emadd_query_arg()
vez de chamar várias vezes.$my_hook = add_xxxx_page
comentários de código$my_hook
não funcionará como substituto$plugin_page
porque são coisas diferentes. O código em si é sólido e está funcionando.$my_hook
no lugar desse var, porque eles geralmente têm o mesmo valor. Não sabe ao certo como são diferentes, veja como$plugin_page
é preenchido (wp-admin / admin.php) e, em seguida, veja como esse valor de menu é criado.Resolvido!
Tente complicar demais as coisas quando um simples condicional faria o truque na função principal chamada a partir da página.
fonte