OK Code complet:
<?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);
}
?>
ANCIEN POST
Salut les gars,
J'écris actuellement un plugin pour mon client dans wordpress. Le problème que je rencontre est lorsqu'un utilisateur clique sur modifier pour modifier un enregistrement, je ne sais pas comment créer le lien d'administration pour ce faire.
c'est à dire
<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>";
}
Je sais que mon balisage pour la balise est probablement faux, mais je testais juste. Dois-je enregistrer un hook pour ce faire.
wpsc_product_seo_details()
? L'avez-vous ajouté à votre menu d'une manière ou d'une autre?Réponses:
Je ne sais pas trop ce que vous essayez de faire.
Les liens d'administration peuvent être facilement créés avec la
admin_url()
fonction, comme ceci:Avec quoi avez-vous exactement un problème?
la source
edit_post_link()
ce qui génère des liens d'édition pour les messages individuels.Avez-vous des problèmes pour créer la page d'administration ?
la source
Juste quelques informations à ajouter à la discussion, et cela pourrait vous être utile plus tard.
Lorsque vous êtes sur une page de plugin, diverses variables d'administration sont définies, vous pouvez créer une URL de base à partir de ces variables et générer des liens à partir de là, en supposant que vous souhaitez qu'elles pointent vers la page de plugin actuelle.
Vous voulez ajouter vos propres variables de requête à cette URL, ajoutez-les simplement à la variable créée ci-dessus en utilisant
add_query_arg
...Cela devrait fonctionner en théorie au moins, je n'ai pas testé le code, mais je ne vois aucune raison pour que cela ne fonctionne pas .. :)
la source
$hook_suffix
monde. Vous pouvez également passer un tableau associatif de trucs comme premier argument auadd_query_arg()
lieu d'appeler plusieurs fois.$my_hook = add_xxxx_page
dans les commentaires de code$my_hook
ne fonctionnera pas en remplacement$plugin_page
car ce sont des choses différentes. Le code lui-même est solide et fonctionne.$my_hook
place de cette var, car ils détiennent généralement la même valeur. Je ne sais pas en quoi ils sont différents, regardez comment$plugin_page
est rempli (wp-admin / admin.php), puis regardez comment cette valeur de menu est créée.Résolu!
Essayez de compliquer les choses lorsqu'un simple conditionnel ferait l'affaire dans la fonction principale appelée depuis la page.
la source