OK Vollständiger Code:
<?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);
}
?>
ALTER POST
Hallo Leute,
Ich schreibe gerade ein Plugin für meinen Kunden in WordPress. Das Problem, das ich habe, ist, wenn ein Benutzer auf Bearbeiten klickt, um einen Datensatz zu ändern. Ich bin nicht sicher, wie ich den Administrator-Link erstellen soll, um dies zu tun.
dh
<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>";
}
Ich weiß, dass mein Markup für das Tag wahrscheinlich falsch ist, aber ich habe nur getestet. Muss ich dafür einen Hook registrieren?
wpsc_product_seo_details()
? Hast du es irgendwie zu deinem Menü hinzugefügt?Antworten:
Ich bin mir nicht sicher, was Sie versuchen zu tun.
Admin-Links können bequem mit folgenden
admin_url()
Funktionen erstellt werden:Womit genau haben Sie ein Problem?
quelle
edit_post_link()
welche Bearbeitungslinks für einzelne Beiträge generiert werden.Haben Sie Probleme beim Erstellen der Administrationsseite ?
quelle
Nur einige Informationen, die Sie in die Diskussion einbinden können. Dies kann später für Sie hilfreich sein.
Wenn Sie sich auf einer Plugin-Seite befinden, werden verschiedene Administratorvariablen festgelegt. Sie können aus diesen Variablen eine Basis-URL erstellen und von dort aus Links erstellen, sofern diese auf die aktuelle Plugin-Seite verweisen sollen.
Wenn Sie dieser URL Ihre eigenen Abfragevariablen hinzufügen möchten, fügen Sie sie einfach der oben erstellten Variablen hinzu, indem Sie
add_query_arg
...Es sollte zumindest theoretisch funktionieren, ich habe den Code nicht getestet, aber ich sehe keinen Grund, warum es nicht funktionieren würde .. :)
quelle
$hook_suffix
global wird. Sie können auch ein assoziatives Array von Dingen als erstes Argument übergeben,add_query_arg()
anstatt mehrmals aufzurufen.$my_hook = add_xxxx_page
in Codekommentaren,$my_hook
wird nicht als Ersatz für funktionieren,$plugin_page
weil sie verschiedene Dinge sind. Der Code selbst ist solide und funktioniert.$my_hook
anstelle dieser Variable darauf verweisen könnten , da sie normalerweise den gleichen Wert haben. Sie sind sich nicht sicher, wie sie sich unterscheiden. Sehen Sie sich an, wie sie$plugin_page
gefüllt sind (wp-admin / admin.php), und sehen Sie sich dann an, wie dieser Menüwert erstellt wird.Aufgelöst!
Versuchen Sie, Dinge zu komplizieren, wenn eine einfache Bedingung den Trick in der von der Seite aufgerufenen Hauptfunktion ausgeführt hätte.
quelle