从Next_Image_link提取url

时间:2014-05-22 作者:CK13

有没有办法从中提取urlnext_image_link?

我想让附件页上的图像链接到下一个图像,但我没有想好怎么做。

2 个回复
最合适的回答,由SO网友:Sisir 整理而成

下面的函数派生自adjacent_image_link() 作用您可以通过此功能获取上一个和下一个图像源。它可以在回路内部或外部使用。

使用

 // get next image src
 $src = wpse145194_get_adjacent_image_link();


 // get previous image src
 $src = wpse145194_get_adjacent_image_link(true);

功能

function wpse145194_get_adjacent_image_link( $prev = false, $size = \'thumbnail\', $post_id = false) {

    if(!$post_id)
        $post = get_post();
    else
        $post = get_post($post_id);


    $attachments = array_values( get_children( array( \'post_parent\' => $post->post_parent, \'post_status\' => \'inherit\', \'post_type\' => \'attachment\', \'post_mime_type\' => \'image\', \'order\' => \'ASC\', \'orderby\' => \'menu_order ID\' ) ) );


    foreach ( $attachments as $k => $attachment )
        if ( $attachment->ID == $post->ID )
            break;

    $k = $prev ? $k - 1 : $k + 1;

    $link = $attachment_id = null;

    if ( isset( $attachments[ $k ] ) ) {
        $attachment_id = $attachments[ $k ]->ID;
        // $link = wp_get_attachment_link( $attachment_id, $size, true, false, false );
        $link = get_attachment_link( $attachment_id);
    }

    return $link;
}
未测试代码

SO网友:CK13

我用214主题中的一个函数解决了我的“问题”:

if ( ! function_exists( \'twentyfourteen_the_attached_image\' ) ) :
/**
 * Print the attached image with a link to the next attached image.
 *
 * @since Twenty Fourteen 1.0
 */
function twentyfourteen_the_attached_image() {
    $post                = get_post();
    /**
     * Filter the default Twenty Fourteen attachment size.
     *
     * @since Twenty Fourteen 1.0
     *
     * @param array $dimensions {
     *     An array of height and width dimensions.
     *
     *     @type int $height Height of the image in pixels. Default 810.
     *     @type int $width  Width of the image in pixels. Default 810.
     * }
     */
    $attachment_size     = apply_filters( \'twentyfourteen_attachment_size\', array( 810, 810 ) );
    $next_attachment_url = wp_get_attachment_url();

    /*
     * Grab the IDs of all the image attachments in a gallery so we can get the URL
     * of the next adjacent image in a gallery, or the first image (if we\'re
     * looking at the last image in a gallery), or, in a gallery of one, just the
     * link to that image file.
     */
    $attachment_ids = get_posts( array(
        \'post_parent\'    => $post->post_parent,
        \'fields\'         => \'ids\',
        \'numberposts\'    => -1,
        \'post_status\'    => \'inherit\',
        \'post_type\'      => \'attachment\',
        \'post_mime_type\' => \'image\',
        \'order\'          => \'ASC\',
        \'orderby\'        => \'menu_order ID\',
    ) );

    // If there is more than 1 attachment in a gallery...
    if ( count( $attachment_ids ) > 1 ) {
        foreach ( $attachment_ids as $attachment_id ) {
            if ( $attachment_id == $post->ID ) {
                $next_id = current( $attachment_ids );
                break;
            }
        }

        // get the URL of the next image attachment...
        if ( $next_id ) {
            $next_attachment_url = get_attachment_link( $next_id );
        }

        // or get the URL of the first image attachment.
        else {
            $next_attachment_url = get_attachment_link( array_shift( $attachment_ids ) );
        }
    }

    printf( \'<a href="%1$s" rel="attachment">%2$s</a>\',
        esc_url( $next_attachment_url ),
        wp_get_attachment_image( $post->ID, $attachment_size )
    );
}
endif;
然后使用<?php twentyfourteen_the_attached_image(); ?> 输出链接到下一个图像的图像。

结束

相关推荐

Removing blog page images

我有我的blog page here 然而,在我创建的一个网站上,我不太明白在哪里可以找到代码来去除我孩子主题上的图像。我使用的是2010年的代码,我已经设置了自己的博客模板页面,但它不起作用,所以我显然编辑了错误的文件。所以不是循环。php我想要编辑的文件,以便在主博客页面上删除这些图像?<?php /* How to display all other posts. */ ?> <?php else : ?> <div i