web-dev-qa-db-ja.com

「個人用サイト」管理ページへの(ブログ固有の)リンクの追加

個人用サイト管理ページには、限られた価値しかないサイトのダッシュボードと制作ページへのリンクしかありません。私は New Post Drafts 、そしてのようにもっと便利なリンクを追加する方法を見つけようとしています。 ]コメントこのページを実用的な中央管理の場所にするために(つまり、数年前にIFramesでまとめたページを使用する必要はありません)。

明らかに私はプラグインを書く必要があるでしょうが、特にこの特定の方法で(管理ページ上の複数の項目にブログ特有の情報を追加する)管理ページを修正する良い例を見つけるのに苦労しています。私が見つけることができた最も近いものはここにありました。アイテムの並べ替えについては 質問 していますが、受け入れられている解決策は単にブログのリストを並べ替えるためのフィルタを追加したもので、これでは役に立ちません。

ファイル/wp-admin/my-sites.phpは、 My Sites ページに次のコードでブログリストを作成します。

foreach ( $row as $user_blog ) {
    $s = $i == 3 ? '' : 'border-right: 1px solid #ccc;';
    echo "<td valign='top' style='$s'>";
    echo "<h3>{$user_blog->blogname}</h3>";

    /* CREATE LINKS HERE: */
    echo "<p>" . apply_filters( 'myblogs_blog_actions', "<a href='" . esc_url( get_home_url( $user_blog->userblog_id ) ). "'>" . __( 'Visit' ) . "</a> | <a href='" . esc_url( get_admin_url( $user_blog->userblog_id ) ) . "'>" . __( 'Dashboard' ) . "</a>", $user_blog ) . "</p>";

    echo apply_filters( 'myblogs_options', '', $user_blog );
    echo "</td>";
    $i++;
}

2つの問題があります。

  1. myblogs_blog_actionsフィルタへの変更をチェーニングすることに関する情報を見つけることができません。私が達成できる最善の方法は、リンクを含むHTMLにテキストを追加することですが、特定のブログに関する情報が処理されないと、少なくとも最初に既に提供されたリンクを解析しなければブログ固有のリンクを提供できません。これを行う方法。

  2. コメント、新規投稿、または下書き(または他の管理者)ページのURLを返す関数に関する情報が見つかりません。明らかに私はブログのルートURLにハードコードされた文字列(例えばpost-new.php)を追加することができましたが、それはおかしなようです。確かにそれらを取得するための適切な組み込みの方法があります。

リンクを変更できるテストプラグインを作成しましたが、追加のパラメータが提供されていないため、ブログ固有のリンクを提供するためにブログIDにアクセスする方法はありません。私は、フィルタに渡された文字列内の既存のリンクを解析できると思いますが、それはそれが得るのと同じくらい洗練されていません:

add_filter('myblogs_blog_actions', 'my_sites_links');
function my_sites_links($links, $a, $b, $c) {
return                 "\n"
  . var_dump($links) . "\n"
  . var_dump($a)     . "\n"
  . var_dump($b)     . "\n"
  . var_dump($c)     . "\n";

誰かがこれを達成することについて何か提案がありますか?

1
Synetech
function my_sites_links($links, $a, $b, $c) {
global $user_blog; 
$user_blog->userblog_id;
}
1
phpdew