Intereting Posts
Изменение настраиваемого поля с лицевой стороны Новый шаблон блога для отображения только одной категории получать только одобренных пользователей (плагин для конечных пользователей) Как я могу использовать этот термин для кода таксономии? Создание ссылок на страницу, отображающую сообщения из определенной категории Исключить только родительские сообщения post-type Обратный вызов короткого кода для add_action ('wp_footer') скрипт wp localize не работает в пользовательском запросе AJAX Как отобразить отображаемое изображение страницы? Изменение содержимого перед записью в базу данных Перенаправить файл в каталог темы WordPress Как перевести название темы как я могу отображать таксономию вместо категории на моей веб-странице? Есть ли у кого-нибудь идеи для получения этих функций с помощью плагина wp-multi-network Использование breadcrumb для возврата из одной страницы в список

Как я могу добавить blog_id в … echo ?

Я использую «константы» много. Я устанавливаю их в functions.php как define('mytheme_town', 'Orlando'); а затем вызовите их в тему <?php echo mytheme_town ; ?> <?php echo mytheme_town ; ?> .

Это просто и легко. Но мне нужно, чтобы они были специфичными для сайта (для нескольких пользователей), поэтому я подумал, что можно добавить текущий blog_id к вызову темы и объявить константы для каждого MultiSite в functions.php? Я не знаю, как это кодировать, но чего я пытаюсь достичь в файле темы … <?php echo [current_blog]_mytheme_town ; ?> <?php echo [current_blog]_mytheme_town ; ?> …..

Например

В functions.php // устанавливаем константы для всех мультисайтов, которые используют эту тему

// awebsite.org: site_id = 1
define ('1_mytheme_town', 'Orlando');
define ('1_mytheme_subject', 'food');
define ('1_mytheme_p1', 'Это текст первого абзаца');

// adifferentsite.com: site_id = 2
define ('2_mytheme_town', 'New York');
define ('2_mytheme_subject', 'wine');
define ('2_mytheme_p1', 'Это текст первого абзаца');

// anothersite.net: site_id = 3 define ('3_mytheme_town', 'LA');
define ('3_mytheme_subject', 'Donuts');
define ('3_mytheme_p1', 'Это текст первого абзаца');

В файлах темы Вызовите константы, используя текущий blog_id, например …

<?php echo [current_blog]_mytheme_town ; ?>
<?php echo [current_blog]_mytheme_subject ; ?>
<?php echo [current_blog]_mytheme_p1 ; ?>

Я пробовал весь день, но я просто догадываюсь, и я действительно не знаю, что делаю. Все, что я пробовал, работает, но он просто выводит текст кода

1_mytheme_town

а не константу, определенную в functions.php.

Надеюсь, вы понимаете, что я пытаюсь объяснить.

Solutions Collecting From Web of "Как я могу добавить blog_id в … echo ?"

Вы можете получить доступ к идентификатору блога, на котором вы находитесь, global $blog_id; и тогда вы можете использовать это, как вы хотите, чтобы он работал.

Использование констант в том, как вы делаете, очень не то, как код хорошего программиста WordPress будет кодировать. Константы очень негибкие и просто не так, как обычно делаются в WordPress.

Предполагая, что, когда вы ссылаетесь на «сайт», вы действительно имеете в виду «блог» в многоязычном языке WordPress (да, я думаю, что терминология странная, но это то, что она есть), то почему бы не использовать get_blog_option() и update_blog_option() вместе с get_site_option() и update_site_option() ? (этот код входит в файл functions.php вашего основного блога или в .php файл плагина «должен использовать», который вы можете разрабатывать):

 add_action('init','yoursite_init'); function yoursite_init() { if (!get_site_option('town_subject_p1_initialized')) { update_blog_option(1,'town','Orlando'); update_blog_option(1,'subject','food'); update_blog_option(1,'p1','This is the first paragraph text'); update_blog_option(2,'town','New York'); update_blog_option(2,'subject','wine'); update_blog_option(2,'p1','This is the first paragraph text'); update_blog_option(3,'town','LA'); update_blog_option(3,'subject','donuts'); update_blog_option(3,'p1','This is the first paragraph text'); update_site_option('town_subject_p1_initialized',true); } } 

Затем для доступа к вашей теме используйте следующий код:

 <?php echo get_blog_option($blog_id,'town'); ?> <?php echo get_blog_option($blog_id,'subject'); ?> <?php echo get_blog_option($blog_id,'p1'); ?> 

Это намного больше «WordPress-like», и вы обнаружите, что он намного более гибкий, а кто-то другой, кто знает, что WordPress гораздо более правдоподобно для понимания кода, который вы оставляете.

ОБНОВИТЬ

Основываясь на комментариях, я собираюсь предложить другой подход для инициализации. Вместо того, чтобы программист постоянно редактировал файл .PHP каждый раз, когда он хочет добавить новый сайт, мета-сайт сайта должен быть добавлен с помощью крюка 'wpmu_new_blog' который вы можете увидеть здесь:

 add_action('wpmu_new_blog','getsunrise_wpmu_new_blog'); function getsunrise_wpmu_new_blog( $blog_id ) { update_blog_option( $blog_id,'town','Pending...'); update_blog_option( $blog_id,'subject','Pending...'); update_blog_option( $blog_id,'p1','Pending...'); } 

Затем администратор сайта может редактировать метафайл сайта по этому URL / /wp-admin/network/site-settings.php?id={$site_ID} {$site_ID} ( /wp-admin/network/site-settings.php?id={$site_ID} заменяя {$ site_ID} новым сайтом #.) Например:

Скриншот редактирования настроек для конкретного блога в WordPress Multisite

Прокрутите вниз до нижней части этой страницы, а затем вы увидите три (3) новых значения метаданных сайта:

Скриншот редактирования дополнительной метафонии сайта для блога в WordPress Multisite

Это гораздо лучший способ использования констант и редактирования файла .php . Ваши клиенты не будут знать, но подсознательно они будут благодарить вас за то, что не причинили им будущих головных болей.