• Здравейте,

    Използвам Pinboard за тема, сложил съм child тема.
    Използвам image за post format.
    Проблема ми е, че на началната страница, като се кликне върху картинките не се зарежда линк към статията, се отваря самата картинка.
    Може ли да ми помогнете да пренапиша, функцията, която оправлява този код.
    Чичко google казва, че може да стане с function.php в child темата,
    Само че такова нещо досега не съм правил и неискам да осера нещата още повече.
    видях в нета „Override Theme Functions“, но нещо не се справям сайм
    това спроред мен е кода който трябва да се промени

    function pinboard_post_image() {
    	if( has_post_thumbnail() ) : ?>
    		<figure>
    			<a href="<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full' ); echo $image[0] ?>" title="<?php the_title_attribute(); ?>" class="colorbox" rel="attachment">
    				<?php the_post_thumbnail( ( pinboard_is_teaser() ? 'teaser-thumb' : 'image-thumb' ) ); ?>
    			</a>
    		</figure>
    	<?php else :
    		// Retrieve the last image attached to the post
    		$args = array(
    			'numberposts' => 1,
    			'post_type' => 'attachment',
    			'post_mime_type' => 'image',
    			'post_parent' => get_the_ID()
    		);
    		$attachments = get_posts( $args );
    		if( count( $attachments ) ) {
    			$attachment = $attachments[0];
    			if( isset( $attachment ) && ! post_password_required() ) :
    				$image = wp_get_attachment_image_src( $attachment->ID, 'full' ); ?>
    				<figure>
    					<a href="<?php echo $image[0]; ?>" title="<?php the_title_attribute(); ?>" class="colorbox"  rel="attachment">
    						<?php echo wp_get_attachment_image( $attachment->ID, 'image-thumb' ); ?>
    					</a>
    				</figure>
    			<?php endif;
    		} elseif( false !== pinboard_get_first_image() ) {
    			if( ! post_password_required() ) :
    				$image = pinboard_get_first_image();
    				if( false === $image[1] )
    					$image[1] = 695;
    				if( false === $image[2] )
    					$image[2] = 430;
    				$attachment = get_post( get_the_ID() ); ?>
    				<figure>
    					<a href="<?php echo $image[0]; ?>" title="<?php the_title_attribute(); ?>" class="colorbox"  rel="attachment">
    						<img src="<?php echo $image[0]; ?>" alt="<?php the_title_attribute(); ?>" width="<?php echo $image[1]; ?>" height="<?php echo $image[2]; ?>" />
    					</a>
    				</figure>
    			<?php endif;
    		} else {
    			the_content();
    		}
    	endif;
    }
    endif;

    според мен това е кода, който трябва да се оправи.
    мисля, че част от кода трябва да се замени с

    <figure>
    			<a href="<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full' ); echo $image[0] ?>"
    			title="<?php the_title_attribute(); ?>" class="colorbox" rel="attachment">
    			<?php the_post_thumbnail( ( pinboard_is_teaser() ? 'teaser-thumb' : 'image-thumb' ) ); ?>
    			</a>
    </figure>

    Ако трябва ще ви пратя целият function.php на основната тема.

Виждате 1 отговор (от 1 общо)
  • Модератор Stanko Metodiev

    (@metodiew)

    На прав път си, ще трябва да замениш URL-а, който сочи към картинката, предполагам че това е реда:
    <a href="<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full' ); echo $image[0] ?>"
    Ще трябва да използваш https://developer.wordpress.org/reference/functions/get_permalink/ и да вземеш ID-то на поста, примерно с get_the_ID() и URL-а трябва да стане:

    $post_id = get_the_ID();
    <a href="<?php echo get_permalink( $post_id ) ?>"...</a>

    Много на бързо написан код, тествай го и виж дали ще се оправиш сам, ако не, питай пак 🙂

Виждате 1 отговор (от 1 общо)
  • Темата ‘Помощ с функция на child’ е затворена за нови отговори.