Поддержка Темы и шаблоны Название twentyeleven в функциях php

  • Здравствуйте.

    В теме twentyeleven крайне часто встречается само название twentyeleven в функциях php.

    К примеру:
    <h3 class="assistive-text"><?php _e( 'Post navigation', 'twentyeleven' ); ?></h3>

    Так вот собственно что такое ‘twentyeleven’?

Просмотр 15 ответов — с 1 по 15 (всего 18)
  • Вся эта конструкция — _e( 'Post navigation', 'twentyeleven' ) — выводит фразу, которая задана в файле локализации темы.

    Спасибо за ответ.

    Меня интересует, что вообще значит ‘twentyeleven’ чуть ли не в каждой функции?
    Без привязки к конкретному, мной приведенному, примеру.

    Многие авторы дают собственные названия своим функциям производными от своего имени или ника, во-первых это красиво, во-вторых так не произойдет конфликта имен.

    Давайте по полочкам 🙂

    <?php _e( ‘Post navigation’, ‘twentyeleven’ ); ?>

    где:
    _e — название функции

    ‘Post navigation’ — константа

    ‘twentyeleven’ — это тогда что?

    Я отвечу ссылкой на кодекс.

    Тут дело не в конкретно функции _e

    Вот еще один из МНОЖЕСТВА примеров:

    <?php edit_post_link( __( 'Edit', 'twentyeleven' )?>

    Что такое 'twentyeleven'?

    Кстати в кодексе (ссылка выше), функция _e описана так:

    <?php _e( $text, $domain ) ?>

    Получается, что переменная $domain = twentyeleven
    Верно?

    Верно. WordPress Translation API

    $text Text to translate.
    $domain Domain to retrieve the translated text.

    Все равно остается неясность у меня.

    А что означает 'twentyeleven' во втором случае:

    <?php edit_post_link( __( 'Edit', 'twentyeleven' )?> ?

    То же самое.

    А что означает

    Пока что это означает syntax error.

    function twentytwelve_setup() {
    	/**
    	 * Make Twenty Twelve available for translation.
    	 * Translations can be added to the /languages/ directory.
    	 * If you're building a theme based on Twenty Twelve, use a find and replace
    	 *  to the name of your theme in all the template files.
    	 */
    	load_theme_textdomain( 'twentytwelve', get_template_directory() . '/languages' );

    Может так понятнее будет… Функция load_theme_textdomain «вешается» на twentytwelve, а потом все слова и фразы, которые могут быть переведены привязаны к $domain = twentytwelve
    Человека видать смутило множество «_e» «__» при переводе.. Там все ограничено фантазией, даже так прокатит (только при генерации pot внести _pupsik и все):
    <?php _pupsik( $text, $domain ) ?>

    wikicms, кажется начал понимать.

    Получается, что

    <?php edit_post_link( __( 'Edit', 'twentyeleven' )?>

    равносильно

    <?php edit_post_link( __( 'Edit', load_theme_textdomain( 'twentyeleven', get_template_directory() . '/languages' ) )?>

    А вот насчет, что такое ( __( не совсем еще понял

    что такое ( __(

    При генерации файла для перевода, например, с помощью poedit.net ищутся все фразы которые начинаются с _e, __, gettext, хоть _пупсик, из этих фраз он составляет файл, который потом и переводят на другой язык, с помощью этой же программы.. прочитайте у них на сайте, что такое gettext

    И согласно совету:

    If you’re building a theme based on Twenty Twelve, use a find and replace to the name of your theme in all the template files.

    получается если я создаю свою тему основанную на twentyeleven, мне нужно во всех файлах заменить twentyeleven на my_theme ?

    И отсюда следует еще один вопрос.., а если не делать этого?
    Будет проще поддерживать обновления twentyeleven ведь.

    Спасибо за терпение ко мне.

Просмотр 15 ответов — с 1 по 15 (всего 18)
  • Тема «Название twentyeleven в функциях php» закрыта для новых ответов.