从POST_CONTENT检索特定数量的单词

时间:2014-01-18 作者:urok93

我想从post\\u内容中检索特定数量的单词,但我不想删除标记。

在我意识到我的所有图像都被删除之前,我正在使用wp\\u trim\\u words(),所以我需要一种替代方法。

1 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

我不认为有一个摘录类型的函数可以让你保存图像。但是有一些函数可以完成您想要做的事情。

首先,您需要设置摘录。在您的内容中。php文件更改

<?php if ( is_search() ) : ?>
使用

<?php if ( is_search() || is_paged() ) : ?>
使用

     function pietergoosen_excerpt_175_words( $length ) {
    return 175;
}
add_filter( \'excerpt_length\', \'pietergoosen_excerpt_175_words\' );
如果您需要的不是wordpress默认的55个单词,请设置摘录长度

以下函数将把文章的第一个图像添加到摘录中,并保持其纵横比。添加到函数。php

 function pietergoosen_get_first_image() {
        global $post;
        $first_img = \'\';
        if( $output = preg_match_all(\'/<img.+src=[\\\'"]([^\\\'"]+)[\\\'"].*>/i\', $post->post_content, $matches))
        $first_img = $matches [1] [0];

        return $first_img;
    }

function pietergoosen_check_if_url_exist($url) {
    $headers = wp_get_http_headers($url);

    if (!is_array($headers)) :
        return FALSE;
    elseif (isset($headers["content-type"]) && (strpos($headers["content-type"],"image") !== false)) :
        return TRUE;
    else :
        return FALSE;
    endif;
}
function pietergoosen_adjust_image_size($image, $alt, $newwidth, $newheight) {
    if (!file_exists($image) && !pietergoosen_check_if_url_exist($image)) return \'\';
    list($width, $height, $type, $attr) = getimagesize($image);
    if (!$width || !$height) return \'\';

    if ($newwidth)
        $newheight = intval($newwidth/$width * $height);
    else
        $newwidth = intval($newheight/$height * $width);
    return \'<img src="\' . $image . \'" width=\' . $newwidth . \' height=\'. $newheight . \' alt=\' . $alt . \'/>\';
}
现在添加以下行

<div class="alignleft-excerpt">
        <a href="<?php echo pietergoosen_get_first_image() ?>" title="<?php printf( the_title_attribute( \'echo=0\' ) ); ?>" rel="lightbox">
          <?php echo pietergoosen_adjust_image_size(pietergoosen_get_first_image(), get_the_title(), 250, 0); ?>
       </a>
   </div>
就在上面

<?php the_excerpt(); ?>
在内容中。php。要设置图像的个人大小,只需将最后一组代码中的值=250设置为所需的任何大小。保持值=0不变。这是为了保持图像的纵横比。

下面是一些设置填充的样式

  .alignleft-excerpt img{
    padding-right: 10px;
    padding-right: 0.71rem; 
    padding-top: 6px; 
    padding-top: 0.42857143rem; 
}

.alignleft-excerpt {
    float: left;
}
希望这有帮助。

结束