1
私はマルチサイトのワードプレスネットワーク内のすべての自分のサイトのリストを作成するショートコードを作ろうとしています。私は、ページの本文に[list_sites]を使用し、私はすべての自分のサイトのリストを取得します。get_sites()を使用して、wordpressでショートコードを作成しようとしています
私はバージョン4.8.3ですので、get_sitesを使用しています。
この機能を親テーマのfunctions.phpファイルに追加すると、500の内部エラーが発生します。
私はこのコードを追加するコードスニペットと呼ばれるプラグインを使用してみましたが、私は手掛かりを与え、このエラーが出る:
スニペットは、ライン11上のエラーが原因で無効になっている: 構文エラー、予期しません " ['
私がオンラインで見たすべてのコード例は同じ構文を使用しているようですので、間違っていることがわかりません。あなたは間違って別の物事のカップルをやっている
function make_list_shortcode() {
$subsites = get_sites();
if (! empty ($subsites)) {
echo '<ul class="subsites">';
foreach($subsites as $subsite) {
$subsite_id = get_object_vars($subsite)["blog_id"];
$subsite_name = get_blog_details($subsite_id)->blogname;
$subsite_link = get_blog_details($subsite_id)->siteurl;
echo '<li class="site-' . $subsite_id . '"><a href="' . $subsite_link . '">' . $subsite_name . '</a></li>';
}
echo '</ul>';
}
}
add_shortcode('list_sites', 'make_list_shortcode');
ありがとうSpartacus、それは今すぐ完璧に動作します。リストをアルファベット順に並べる方法は?私はsort($ subsite_name)を考えていましたが、配列ではなくプロパティであるため動作しないと思います。 – kingsman
https://developer.wordpress.org/reference/functions/get_sites/を読んでください。ソート順の引数を渡すことができます – Spartacus