Как отобразить название сайта на странице или записи WordPress
Я пытаюсь создать набор юридических страниц, которые можно добавить на любой сайт WordPress.
Внутри этих страниц я хочу упомянуть название сайта. Есть ли встроенный короткий код или что-то подобное, что я могу включить в страницы для этого?
Например, я хочу создать Страницу конфиденциальности с переменной/шорткодом, который будет отображать название сайта, независимо от того, на каком сайте я создаю страницу.
Просто скопировать и вставить текст, который будет включать эту переменную/шорткод. Я хочу избежать редактирования functions.php
, если это возможно.

Нет, в ядре WordPress нет шорткода для этого.
Название сайта доступно как опция, фактически get_option('blogname')
возвращает название блога.
Кроме того, get_bloginfo('name')
/ bloginfo('name')
можно использовать для получения / вывода названия сайта.
Конечно, вы не можете использовать эти функции как шорткод по умолчанию, поэтому если вы хотите этого добиться и не хотите редактировать файл темы functions.php
, вам понадобится плагин или MU-плагин.
Последний вариант, вероятно, предпочтительнее при сетевой установке.
Плагин
Ниже представлен рабочий плагин (который можно использовать и как MU-плагин), решающий задачу:
<?php
/**
* Plugin Name: Bloginfo Shortcode
* Description: Позволяет использовать bloginfo() как шорткод.
* Author: Giuseppe Mazzapica
* Author URI: http://gm.zoomlab.it
* License: MIT
*/
add_shortcode('bloginfo', function($atts) {
$atts = shortcode_atts(array('filter'=>'', 'info'=>''), $atts, 'bloginfo');
$infos = array(
'name', 'description',
'wpurl', 'url', 'pingback_url',
'admin_email', 'charset', 'version', 'html_type', 'language',
'atom_url', 'rdf_url','rss_url', 'rss2_url',
'comments_atom_url', 'comments_rss2_url',
);
$filter = in_array(strtolower($atts['filter']), array('raw', 'display'), true)
? strtolower($atts['filter'])
: 'display';
return in_array($atts['info'], $infos, true) ? get_bloginfo($atts['info'], $filter) : '';
});
Приведенный выше плагин можно использовать для вывода (почти) всей информации, которую способен вернуть get_bloginfo()
, я просто удалил устаревшие и не рекомендуемые параметры.
Использование
Если у вас есть этот код в MU-плагине или активном плагине, вы можете вывести название сайта следующим образом:
[bloginfo info='name']
Все доступные параметры перечислены в массиве $infos
.

Для тех, кто не знает, что такое mu-plugins: убедитесь, что у вас есть папка mu-plugins в wp-content. Если её нет - создайте. Большинство установок WordPress ищут эту папку, так что проблем быть не должно. Затем создайте в ней файл bloginfo.php (или любое другое имя) и вставьте код, который предоставил gmazzap. После этого используйте шорткод на странице и... готово!

Я не думаю, что это возможно без изменения файла functions.php или использования какого-либо плагина.
Вам необходимо преодолеть "барьер" между PHP в фоновом режиме и HTML, CSS и т.д. на переднем плане, что обычно делается либо через functions.php, либо через плагин.

Хотя неясно, есть ли у вас желание углубляться в код, плагин позволит вам использовать PHP внутри записи/страницы прямо из админ-панели.
Этот вариант, кажется, подойдет вам: https://wordpress.org/plugins/php-code-for-posts/ Примечание: я не участвую в разработке этого плагина.
С его помощью вы сможете использовать любые функции WordPress или возможности PHP внутри ваших записей/страниц.
Для отображения названия вашего блога используйте bloginfo( 'name' )
.
Для функций и информации полезен WordPress Codex.
