• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Удаление информации об авторе статьи

Image CMS

Stork.71

Гуру
Местный
#1
Ситуация, с которой, возможно, сталкиваются многие посетители данного форума, у которых сайт на WordPress с плагином Woocommerce. То есть в данном случае WP используется совсем не как блоговый движок. Однако некоторые статьи (о фирме, о товаре, да и просто что-то интересное) добавлять хочется, но вот тут совершенно не нужен автор публикации, тем более что это в некотором роде удар по безопасности сайта - юзер может видеть админский логин. . С этим-то автором я и решил побороться.
Сначала прошерстил все настройки WordPress, WooCommerce, темы Wootique, но ничего подобного не нашел. Хотя странно - вроде бы вполне нормальное желание.
Прежде всего захотелось удалить блок, в котором отображается аватар и ссылка на поиск по категориям.
2013-12-26_110735.jpg
Пошел в www\wp-content\themes\wootique\single.php, нашел там и удалил код:
PHP:
                <?php if ( $woo_options[ 'woo_post_author' ] == "true" ) { ?>
                <div id="post-author">
                    <div class="profile-image"><?php echo get_avatar( get_the_author_meta( 'ID' ), '70' ); ?></div>
                    <div class="profile-content">
                        <h3 class="title"><?php printf( esc_attr__( 'About %s', 'woothemes' ), get_the_author() ); ?></h3>
                        <?php the_author_meta( 'description' ); ?>
                        <div class="profile-link">
                            <a href="<?php echo get_author_posts_url( get_the_author_meta( 'ID' ) ); ?>">
                                <?php printf( __( 'View all posts by %s <span class="meta-nav">&rarr;</span>', 'woothemes' ), get_the_author() ); ?>
                            </a>
                        </div><!-- #profile-link    -->
                    </div><!-- .post-entries -->
                    <div class="fix"></div>
                </div><!-- #post-author -->
                <?php } ?>
Вроде бы и работает, вот только все же немного побаиваюсь вносить изменения в файлы кода. Поэтому обратил внимание на if ( $woo_options[ 'woo_post_author' ] == "true" и понял, что это проверка некой переменной, соответственно можно как-то задать ей значение false и блок выводиться не будет. Вот только как это сделать?
В результате долгих ковыряний чисто случайно из настроек фреймворка Wootique вылез на интересную страничку - wp-admin/options.php "Все настройки". Чего там только нет! woo_post_author тоже нашлось, поставил false, сохранил, но вот толку никакого - блок как вылазил, так и вылазит.
В общем, вопросов много. Во-первых, не страшно ли будет просто удалить этот кусок кода? Может это можно сделать с помощью хука в functions.php, и как? Что это вообще за страничка интересная такая - wp-admin/options.php "Все настройки"?
 

Stork.71

Гуру
Местный
#2
И еще второй вопрос. В продолжении темы захотел убрать автора из мета-тегов над статьей ("Опубликовано на 04.12.2013 по admin в Новости". В том же www\wp-content\themes\wootique\single.php нашел, что между заголовком статьи и ее содержанием есть только одна строчка - <?php woo_post_meta(); ?>. Начал искать эти post_meta, отрыл файлик www\wp-content\themes\wootique\includes\theme-functions.php, а в нем код:
PHP:
/*-----------------------------------------------------------------------------------*/
/* Post Meta */
/*-----------------------------------------------------------------------------------*/

if (!function_exists( 'woo_post_meta')) {
    function woo_post_meta( ) {
?>
<p class="post-meta">
    <span class="post-date"><span class="small"><?php _e( 'Posted on', 'woothemes' ) ?></span> <?php the_time( get_option( 'date_format' ) ); ?></span>
    <span class="post-author"><span class="small"><?php _e( 'by', 'woothemes' ) ?></span> <?php the_author_posts_link(); ?></span>
    <span class="post-category"><span class="small"><?php _e( 'in', 'woothemes' ) ?></span> <?php the_category( ', ') ?></span>
    <?php edit_post_link( __( '{ Edit }', 'woothemes' ), '<span class="small">', '</span>' ); ?>
</p>
<?php
    }
}
В общем то, опять таки удалением среднего span'a как раз удается удалить всяческие упоминания об авторе, причем не только на странице отдельной записи, а и в ленте новостей, чего и добиваемся. Вопрос - корректно ли делать это так, или как-то через functions.php?
 

D&B

Администратор
Команда форума
Местный
#3
Оставьте уже несчастный вутик в покое, подберите себе тему где это все в настройках отключается.
 

Stork.71

Гуру
Местный
#4
Оставьте уже несчастный вутик в покое, подберите себе тему где это все в настройках отключается.
Ненене, я так просто не сдаюсь! Много тем пересмотрел, не подходят. Я уже на финишной прямой, осталось красивую менюшку прикрутить. А потом сделать цикл статей "как я препарировал Вутик" - вдруг кому сгодится. ;)
 

ya.zkp

Форумчанин
#5
вутик конечно хорошая тема, но тут соглашусь с D&B - зачем ее так мучать? есть же огромное количество других тем которые полностью удовлетворят любые потребности....
 

Валерий

Специалист
#6
Вопрос - корректно ли делать это так...
Корректно. Удаляйте...

P.S. Только учитывайте, что, например, при обновлении темы (если обновление выйдет), ваши изменения затрутся. Чтобы не забыть, где и что Вы там настирали (ну или навписывали), заведите себе блокнотик, и записывайте в него все вносимые изменения в файлы темы, самого WooCommerce, и плагинов. Вспоминать потом такие вещи ооочеень проблематично! ;)
 

Валерий

Специалист
#7
...не страшно ли будет просто удалить этот кусок кода?
А чего тут страшного? Он ведь Вас не укусит! :)

Если Вам этот кусок кода вообще не нужен - удалите его полностью, а если частично - удалите ненужные div-вы. Странно, что false не сработал... может надо было еще и вместо == поставить !=

Ну или как-нибудь так:

PHP:
                <?php if ( $woo_options[ 'woo_post_author' ] == "true" ) { } else {?>
                <div id="post-author">
                    <div class="profile-image"><?php echo get_avatar( get_the_author_meta( 'ID' ), '70' ); ?></div>
                    <div class="profile-content">
                        <h3 class="title"><?php printf( esc_attr__( 'About %s', 'woothemes' ), get_the_author() ); ?></h3>
                        <?php the_author_meta( 'description' ); ?>
                        <div class="profile-link">
                            <a href="<?php echo get_author_posts_url( get_the_author_meta( 'ID' ) ); ?>">
                                <?php printf( __( 'View all posts by %s <span class="meta-nav">&rarr;</span>', 'woothemes' ), get_the_author() ); ?>
                            </a>
                        </div><!-- #profile-link    -->
                    </div><!-- .post-entries -->
                    <div class="fix"></div>
                </div><!-- #post-author -->
                <?php } ?>
Т.е. ели условие истинно, то ничего не делаем, а если ложно - выводит блок (но так лучше не делать, а то блок вылезет где-то в самый неподходящий момент. Лучше сразу все лишнее чикнуть...)
 

ya.zkp

Форумчанин
#8
еще если страшно удалять какойнить кусок кода, можно просто его закоментировать, и если возникнут проблемы то всегда можно быстро откатить назад
 

Stork.71

Гуру
Местный
#9
P.S. Только учитывайте, что, например, при обновлении темы (если обновление выйдет), ваши изменения затрутся. Чтобы не забыть, где и что Вы там настирали (ну или навписывали), заведите себе блокнотик, и записывайте в него все вносимые изменения в файлы темы, самого WooCommerce, и плагинов. Вспоминать потом такие вещи ооочеень проблематично! ;)
Так и делаю. Только в .doc-файл с указанием что, как было, как стало, № строки и зачем. Вот только я уже в нем немного теряться начинаю. Бедный Вутик :)
еще если страшно удалять какойнить кусок кода, можно просто его закоментировать, и если возникнут проблемы то всегда можно быстро откатить назад
Вот с комментами как-то у меня не сложилось - пробовал, а комментирование заканчивается на ближайшем "/" из описания пути например (по крайней мере, согласно цветовой разметке в Notepad++, стараюсь на нее ориентироваться).
 

SergWP

Форумчанин
#10
Чтобы не забыть, где и что Вы там настирали (ну или навписывали), заведите себе блокнотик, и записывайте в него все вносимые изменения в файлы темы, самого WooCommerce, и плагинов. Вспоминать потом такие вещи ооочеень проблематично!
Что бы так не геммороится в ВП есть механизм дочерних тем. Освоить его проще пареной репы, но преимущества - огромны.