Ответы в темах

Просмотр 12 ответов — с 121 по 132 (всего 132)
  • Ну вы бы сформулировали точнее.
    Скорее всего нужно лезть в файл header.php и копать там.
    Скорее всего там сейчас прописан альт так
    alt=»<?php bloginfo(‘name’); ?>»

    Также есть вариант, когда картинка залита через обычную медиатеку вордпрес и альт прописан к конкретной картинке прямо там. Тогда нужно лезть, искать и менять.
    И это лишь 2 из возможных и наиболее вероятных вариантов. Вы точнее сформулируйте.
    Есть вариант, что шапка прописана не только в header.php но и в front-page.php, home.php
    Вы точнее расскажите все.

    PS а еще в настройках темы может задаваться через мета поля.

    Оповещения сделал через хук add_action(‘admin_notices’)! Спасибо. Тема решена!

    Сергей, спасибо ОГРОМНОЕ! Работает!
    Может кому понадобиться, ниже код с комментариями (как я это понял своими словами)

    function disallow_publish_posts( $caps, $cap, $current_user_id, $args ) {
    /* Этот фильтр срабатывает всякий раз, когда проверяются права на совершение того или иного действия. Срабатывает всегда при проверке current_user_can. В нашем случае в момент проверки current_user_can( 'publish_posts' ).
    $cap - право, которое проверяем (в нашем случае его надо урезать)
    $caps - массив со списком прав, которые необходимы для совершения определенного действия. Если к этим правам добавить $caps[] = 'do_not_allow'; - мы запретим данное действие в данный момент времени
    */
    if ( 'publish_posts' === $cap ) { // проверяется возможность публиковать запись
    $user = get_userdata( $current_user_id ); // получаем данные юзера
    $role = ( $user ) ? current( $user->roles ) : ''; // вытаскиваем его роль
    $n_postov = get_the_author_meta('limit_postov', $current_user_id); // получаем число оставшихся у юзера постов
    if (($n_postov == '')||$n_postov == '0') { // если счетчик постов на нуле
    if ( 'reel' === $role) { // и при этом юзер в группе reel
    $caps[] = 'do_not_allow'; // блокируем возможность прямой публикации поста (вместо этого WP подставит конпку "Отправить на утвеждение")
    }} else {$n_postov = $n_postov - 1; update_usermeta( $current_user_id, 'limit_postov', $n_postov );}
    } return $caps;}
     add_filter( 'map_meta_cap', 'disallow_publish_posts', 10, 4 );

    PS в моем случае для юеров в профиле создавался отдельный блок с «лимитом постов» (limit_postov)
    Последний вопрос. Как посоветуете активировать вверху сообщение, что мол «ваш лимит постов исчерпан». Чтобы выводилось на каждой страничке выше заголовков.

    Спасибо за наводку. А можете чуточку пояснить код. В кодексе чет крайне мало нашел про map_meta_cap http://codex.wordpress.org/Function_Reference/map_meta_cap

    и не совсем уловил принцип его работы
    хотяб кратко подскажите что значат переменные
    $caps, $cap, $current_user_id, $args
    я так понимаю, что $caps — это массив?
    а еще что лежит у нас в $args ?

    я пока только вот что понял
    в $cap у нас то право, которе хотим урезать.
    $current_user_id — id того, кого урезаем.

    $caps у нас что? Все права которые есть у юзера или как? а в $args?

    И в какой момент map_meta_cap срабатывает? Т.е. к примеру я урезаю только юзеров из группы reel, админов и прочих не урезаю….

    вообще мой первичный код висел на add_action(‘publish_post’ и выглядел так.

    $cur_user_id = get_current_user_id(); // id текущего юзера
    $user = new WP_User( $cur_user_id ); // создаем экземпляр касса юзера
    $n_postov = get_the_author_meta('limit_postov', $cur_user_id); // получаем число оставшихся у юзера постов
    if (($n_postov == '')||$n_postov == '0') {
    $user->remove_cap( 'publish_posts' ); // и урезаем права
    if(current_user_can('publish_posts') ){
    echo "У юзера есть право publish_posts!";
    } else {/*Отнимаетм от счетчика единичку*/}
    }

    Та же трабла((
    Я не знаю, важно это или нет. Но юзер у меня принадлежит произвольному типу ролей. Может там особенности какие при работе с подобными ролями и правами

    /* Создаем новую роль пользователя reel */
    $new_role = add_role (
    'reel', // название роли
    __( 'Моя роль', 'r7'), // отображаемое название роли
    array( // массив возможностей
    'read' => true, // просмотр сайта
    'delete_posts' => true, // удаление собственных записей
    'edit_posts'=> true, // редактирование собственных записей
    'delete_published_posts' => true, // удаление собственных опубликованных записей
    'publish_posts'=> true, // публикация постов
    'upload_files'=> true, // загрузка файлов
    'edit_published_posts'=> true // редактирование собственных опубликованных записей
    ));
    if ( null !== $new_role ) { trigger_error("роль успешно создана"); /* смотрим результат - роль успешно создана */ }
    else { /* если null, то значит роль уже существует */ }

    Создание роли повешено на
    register_activation_hook(__FILE__, ‘r7i_set_options’);

    PS урезание прав повешено на
    add_action(‘publish_post’, ‘r7_control_package’, 0);
    (т.е. суть в чем. Я делаю лимитатор. Что каждый юзер можент опубликовать лишь по одному посту.)

    Т.е вы хотите создать страницы, которые можно лишь в админке смотреть? Или во внешней части сайта тоже можно, но лишь при наличии ссылки?

    Вообще это от верстки зависит. Там скорее всего в цсс высота блока фиксирована. По скриншоту подсказать не реально, нужна ссылка на сайт как минимум. Но думаю, что да, возможно.

    denisco, спасибо за мини-плагин в той теме, только у меня трабла по сути я так понимаю с аяксом и jsoon.
    Может взглянете код. (Я там вроде почти каждую строку комментил, возможно есть ошибки, которые бросаются явно в глаза)
    PS там не полный код админ перекинул. Вот полный http://paste.debian.net/411690/

    Спасибо!

    Спасибо. Вроде прояснилось! А по этому вопросу не подскажете случайно? https://ru.forums.wordpress.org/topic/%d0%9a%d0%b0%d0%ba-%d0%bf%d0%be%d0%b4%d0%ba%d0%bb%d1%8e%d1%87%d0%b8%d1%82%d1%8c-css-%d1%84%d0%b0%d0%b9%d0%bb-%d0%b8%d0%bb%d0%b8-js?replies=2

    Вот я и запутался. Для большего прояснения вопроса: Вот стандартный пример.

    add_action( 'init', 'true_register_products' ); // Использовать функцию только внутри хука init
    
    function true_register_products() {
    	$labels = array(
    		'name' => 'Товары',
    		'singular_name' => 'Товар', // админ панель Добавить->Функцию
    		'add_new' => 'Добавить товар',
    		'add_new_item' => 'Добавить новый товар', // заголовок тега <title>
    		'edit_item' => 'Редактировать товар',
    		'new_item' => 'Новый товар',
    		'all_items' => 'Все товары',
    		'view_item' => 'Просмотр товаров на сайте',
    		'search_items' => 'Искать товары',
    		'not_found' =>  'Товаров не найдено.',
    		'not_found_in_trash' => 'В корзине нет товаров.',
    		'menu_name' => 'Товары' // ссылка в меню в админке
    	);
    	$args = array(
    		'labels' => $labels,
    		'public' => true, // благодаря этому некоторые параметры можно пропустить
    		'menu_icon' => 'dashicons-cart', // иконка корзины
    		'menu_position' => 5,
    		'has_archive' => true,
    		'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'comments'),
    		'taxonomies' => array('post_tag')
    	);
    	register_post_type('product',$args);
    }

    Правильным ли в нем будет заменить первую строку на
    add_action( ‘registered_post_type’, ‘true_register_products’ );
    или нет?
    Или этот хук (registered_post_type) только для изменения стандартных post-страниц? И его нельзя использовать для создания своего собственного типа записей?
    Аналогичный вопрос по хуку registered_taxonomy

    Либо в functions.php через хук wp_enqueue_scripts https://codex.wordpress.org/%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_%D0%BF%D0%BE_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F%D0%BC/wp_enqueue_script
    Либо так (не совсем правильный, но наиболее распространенный способ):

    <script type='text/javascript' src='<?php bloginfo('template_directory'); ?>/my.js'></script>
    <link rel='stylesheet' href='<?php bloginfo('template_directory'); ?>/style.css' type='text/css' media='all' />

    <?php bloginfo(‘template_directory’); ?> означает, что файлы должны лежать в папке с шаблоном
    Вставить можно к примеру в headr.php темы

Просмотр 12 ответов — с 121 по 132 (всего 132)