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

Просмотр 15 ответов — с 61 по 75 (всего 109)
  • я это только предполагал, теперь уверен на 99%. Ищите в файлах темы #more-. Ключик к решению там.

    Если честно, я тоже .
    Пока нашел в одном файле

    у меня в родительской теме в файле theme-functions.php нашел такой код:

    if ( ! function_exists( 'generate_show_excerpt' ) ) {
    	/**
    	 * Figure out if we should show the blog excerpts or full posts
    	 * @since 1.3.15
    	 */
    	function generate_show_excerpt() {
    		global $post;
    
    		// Check to see if the more tag is being used.
    		$more_tag = apply_filters( 'generate_more_tag', strpos( $post->post_content, '<!--more-->' ) );
    
    		$format = ( false !== get_post_format() ) ? get_post_format() : 'standard';
    
    		$show_excerpt = ( 'excerpt' === generate_get_option( 'post_content' ) ) ? true : false;
    
    		$show_excerpt = ( 'standard' !== $format ) ? false : $show_excerpt;
    
    		$show_excerpt = ( $more_tag ) ? false : $show_excerpt;
    
    		$show_excerpt = ( is_search() ) ? true : $show_excerpt;
    
    		return apply_filters( 'generate_show_excerpt', $show_excerpt );
    	}
    }

    а между 5.6 и 7.4 других версии не пробовали ?

    метод конструктора класса WP_Widget в MySite_Flickr_Widget считается устаревшим с версии 4.3.0!

    Что подразумевается под словом «версии 4.3.0»? Какая у вас версия Вордпресс?

    Всё же решил свой вопрос с помощью плагина: Featured Image from URL

    у меня тоже тема generate press и те же проблемы, но я решил вопрос без плагина
    У меня тоже выводились сторонние картинки только в том случае,если ставить тег далее, проблему я решил, но теперь не могу убрать #more-№№№№ в конце ссылок . Переделать все записи и удалить из них more не очень привлекательная идея. В теме генератепресс в принципе не было необходимости ставить тег далее в записи, так, как и так без тега тема вывел отрывок. Но этот тег был нужным именно за то, что вывести с отрывком сторонние изображения.
    Кроме того, что нужно вывести первое изображение записи на главной и на страницах архивов и меток . У меня был на сайте блок похоже записи от плагинов похожих записей , которые не выводили сторонние картинки, даже если ставить тег далее в записи .Другая сторона вопроса является проблема дублей , например в некоторых записей помимо того, что присутствуют изображения в текстах, еще и назначены миниатюры и как следствие стандартные коды выводили две картинки. По этому мне пришлось применить комплексные решения , сделать гибрид кодов , благодаря чему добывался:
    1. Вывод первого изображении записи на главной странице если даже изображение находятся на сторонних ресурсов.
    2. Создавать блок похожих записей с выводом первого изображении записи на главной странице если даже изображение находятся на сторонних ресурсов.
    3. Исключить дубли выводов,то есть запрет вывода первой изображении записи на тех отрывках , где назначена миниатюра
    Подробнее здесь:
    https://www.rianovost.ru/pervaya-kartinka-iz-zapisi-vmesto-miniatyury-wordpress-bez-plagina-i-sozdanie-bloka-pohozhih-zapisey/

    у меня в родительской теме в файле theme-functions.php нашел такой код:

    if ( ! function_exists( 'generate_show_excerpt' ) ) {
    	/**
    	 * Figure out if we should show the blog excerpts or full posts
    	 * @since 1.3.15
    	 */
    	function generate_show_excerpt() {
    		global $post;
    
    		// Check to see if the more tag is being used.
    		$more_tag = apply_filters( 'generate_more_tag', strpos( $post->post_content, '<!--more-->' ) );
    
    		$format = ( false !== get_post_format() ) ? get_post_format() : 'standard';
    
    		$show_excerpt = ( 'excerpt' === generate_get_option( 'post_content' ) ) ? true : false;
    
    		$show_excerpt = ( 'standard' !== $format ) ? false : $show_excerpt;
    
    		$show_excerpt = ( $more_tag ) ? false : $show_excerpt;
    
    		$show_excerpt = ( is_search() ) ? true : $show_excerpt;
    
    		return apply_filters( 'generate_show_excerpt', $show_excerpt );
    	}
    }

    возможно ли на основе этого кода в дочерней теме что то сделать,что удалить прыжок после нажатия «читать далее»

    Кроме вашего кода, в интернете нашел других кодов, которые тже не работают

    https://www.wordpressask.com/more-2.html сделал по их инструкции тоже 0 результатов
    http://dimox.name/udalyaem-yakor-vida-more-123-iz-ssylki-chitat-dalee/ тоже толку ноль

    даже инструкция от кодекса вордпресс не помог к сожалению

    https://codex.wordpress.org/Customizing_the_Read_More#Link_Jumps_to_More_or_Top_of_Page

    да но так измениться только высота, а где ширину менять?

    width:ваш размер;
    Можно задать max-width тогда будет не больше данного размера но не знаю, после изменения при несоответствии пропорции width height изображение трансформируется или обрежется. И при каких случаях трансформируется и при каких случаях обрежется

    а где ширину менять?

    Если менять только высоту, ширина меняется автоматически (если не задать размер) и наоборот, если менять ширину, высота меняется автоматически согласно пропорции, например ширина 300 высота 200 в px то когда меняем ширину на 150, высота станет 100. Но если нарушать пропорции, то происходит ли обрезка, это мне тоже интересно, сейчас просто пишу с телефона, не за комом, а то попробовал бы

    • Ответ изменён 3 года, 10 месяцев назад пользователем rianovost.

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

    откройте костомайзер и вставьте код

    element.style {
        background-image: url(https://fond-rushd.tj/wp-content/uploads/2020/05/2.jpg);
        background-size: contain;
        background-repeat: no-repeat;
    }

    если нужно убрать логотип между записи и изображении

    .header_mobile .logo {
        padding-top: 0;
        padding-bottom: 0;
        display: none;
    }

    если нужно изменить размер изображении , не трогаем первый код, а вставим вот это

    .top_panel_image {
        height: 42em;
        overflow: hidden;
        position: relative;
        background-size: contain;
        background-position: center;
        background-repeat: no-repeat;
    }

    где height: 42em; меняем 42 на другую цифру

    Сейчас на будем гадать на кофейной гуще на вашем скриншоте. Отправьте ссылку на страницу!

    Отмечаю вопрос решенным! Теперь осталось гадать, как удалить «прыжок» тега «далее»

    Напишу инструктаж, как вывести первое изображение записи, если не задана миниатюра в самой записи. Используя инструкции из разных блогов получил первое изображение там, где не задана миниатюра, зато заодно в тех записях, где задана миниатюра получил две изображении, что и не очень приятно))) по этому пришлось допилить код с чем и поделюсь ))
    Задача:
    1.Вывод первого изображении записи на главной если не задана миниатюра.
    2.Создание блока похожих записей и вывод первого изображении записи на блоке похожих записей если не задана миниатюра.
    3.Исходя из того, что некоторые ранее созданные записи с заданными миниатюрами, то нужно вставить условие, которое при наличии миниатюр запрещает вывод первой картинки,иначе получаем либо дубль, либо две разные картинки на главной (в зависимости того, что вы добавили в свое время)
    Итак, по порядку:
    Шаг1. Вставим следующую функцию в functions.php

    //ВЫВОД ПЕРВОЙ КАРТИНКИ С ПОСТА
    function first_post_image() {
      global $post, $posts;
      $first_img = '';
      ob_start();
      ob_end_clean();
      $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
      $first_img = $matches [1] [0];
      if(empty($first_img)){
       $first_img = "<?php the_post_thumbnail('thumbnail')";
    // для вывода миниатюр в похожие записи 
      }
      return $first_img;
    }

    файл сохраним . Далее вставляем условие пункта 2 в файл single.php в конце вставим команду:

    <div class="related_posts">
    <h3>Похожие записи</h3>
    <?php
    $categories = get_the_category($post->ID);
    if ($categories) {
     $category_ids = array();
     foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
     $args=array(
     'category__in' => $category_ids,
     'post__not_in' => array($post->ID),
     'showposts'=>3,
    'orderby'=>rand,
     'caller_get_posts'=>1);
     $my_query = new wp_query($args);
     if( $my_query->have_posts() ) {
     echo '<ul>';
     while ($my_query->have_posts()) {
     $my_query->the_post();
    ?>
    <li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php if ( has_post_thumbnail() ) { the_post_thumbnail('thumbnail'); }
    else { ?>
    <img src="<?php echo first_post_image() ?>" alt="<?php the_title(); ?>" />
    <?php } ?><div id="box-cel"><br><?php the_title(); ?></div></a></li><?php the_excerpt(); ?>
    <?php
    }
    echo '</ul>';
    }
    wp_reset_query();
    }
    ?></div>

    Естественно, будут выводятся изображения разного размера , по этому в style.css подправим их по своему вкусу.

    Теперь нам нужно , чтобы вывести на главной первое изображение записи если не задана миниатюра, а если задана исключить дубля . Откроем файл content.php и после

    <?php
    		/**
    		 * generate_after_entry_header hook.
    		 *
    		 * @since 0.1
    		 *
    		 * @hooked generate_post_image - 10
    		 */
    		do_action( 'generate_after_entry_header' );
    
    		if ( generate_show_excerpt() ) : ?>
    <?php 

    вставим

    <?php 
    		/*Если надо, чтобы выводилась миниатюра, а если ее нет, первая картинка с записи, то нужно вставлять условие следующего вида:*/
    		if ( has_post_thumbnail() ) {}
    else { ?>
    <img src="<?php echo first_post_image() ?>" alt="<?php the_title(); ?>" />
    <?php } ?>

    Таким образом задача решена.
    Но если вдруг у вас никакое изображение не задано,и вы хотите,что на главной выводилась картинка по умолчанию, то в functions.php добавьте следующий код:

    function get_post_image() {
    global $post, $posts;
    $first_img = '';
    ob_start();
    ob_end_clean();
    $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
    $first_img = $matches [1] [0];
    
    if(empty($first_img)){
    $img_dir = get_bloginfo('template_directory');
    $first_img = $img_dir . '/images/post-default.jpg';
    }
    return $first_img;
    }
    

    Потом Откроем файл content.php и после

    <?php
    		/**
    		 * generate_after_entry_header hook.
    		 *
    		 * @since 0.1
    		 *
    		 * @hooked generate_post_image - 10
    		 */
    		do_action( 'generate_after_entry_header' );
    
    		if ( generate_show_excerpt() ) : ?>
    <?php 

    вставим

    <?php 
    		/*Если надо, чтобы выводилась миниатюра, а если ее нет, первая картинка с записи, то нужно вставлять условие следующего вида:*/
    		if ( has_post_thumbnail() ) {}
    else { ?>
    <img src="<?php echo get_post_image() ?>" alt="<?php the_title(); ?>" />
    <?php } ?>

    если вы заметили, я first_post_image заменил на get_post_image

    Класс добавляет что-то в исходный html? Это что-то новенькое

    Согласен! Я «хромаю» в этом деле))) но если вариантов нет, хот плагины предлагайте.
    Кстати моя тема GeneratePress многим она известна, или тема не причём, за эту кашу ядро отвечает? И к слову, если сейчас я тему поменяю то на всех записях появится две «читать далее» придётся залезть во всех записях и удалить тег «далее». Но эта тема отдельного разговора, сейчас задача стоит в удаления прыжка тега далее или без тега далее выводить изображение. Интуиция подскажет, что это возможно, но логика хромает к сожалению))

    Здесь очень интересно, когда в записи не вставлю тег «далее». То на главной тоже выводится отрывок, но если миниатюра не задана, выводится голый текст, за это отвечает настройка темы, этот метод хорош, но не выводит первое изображение. Когда в браузере исследую код, показывает класс class=»read-more». Но когда в записи вставлю тег далее показывают класс class=»read-more.content-read-more» .когда class=»read-more» то в конце ссылки href=»https://www.rianovost.ru/in-the-summer-of-2018-new-laws/&#187;
    То есть класс read-more не добавит в концу адреса #more-NNNN а это сделает класс class=»read-more.content-read-more»
    А тег далее вызывает именно этот класс

    у этого метода есть свои минусы, проще выполнять задачу штатными средствами.

    Как вы однажды заметили, это костыль))) но для начала подойдёт, у меня сейчас костомайзер напичкан кодами, даже от вас есть код, но по мере усвоения штатных средств удалю их, но зато сайт за это время выглядит более менее

    Отсюда не видно.

    видно,
    в «посмотреть код» за кнопку отвечает следующий код:
    <a title="Летом 2018 года в России вступят в силу новые законы и нормативные акты, которые повлияют на жизнь россиян." class="read-more content-read-more" href="https://www.rianovost.ru/in-the-summer-of-2018-new-laws/#more-3306">ЧИТАТЬ ДАЛЕЕ <span class="screen-reader-text">Летом 2018 года в России вступят в силу новые законы и нормативные акты, которые повлияют на жизнь россиян.</span></a>

    вставил в конце functions, но не сработал. по прежнему прыжок и #more присутствуют

Просмотр 15 ответов — с 61 по 75 (всего 109)