根据内容部分中的第一个h2元素设置帖子标题

时间:2015-12-29 作者:user304165

我为用户设置了一个前端编辑器来创建帖子,我希望尽可能简单地创建帖子,所涉及的字段最少。是否可以根据内容字段中出现的第一个h2元素生成文章标题?我该怎么做?

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

如果您可以在PHP端处理这个问题,那么您可能可以h2 使用内容中的标记regular expression.

PHP VERSION

测试内容

$content = "<h2>This is H2 Content</h2><p>This is p content</p>Random Content<h2>This is another H2 section</h2><b><h2>This the third H2 section</h2></b>";
抓取H2s中的任何文本

preg_match_all(\'#<h2>(.*?)</h2>#\', $content, $matches);

// Merge the first 2 matches

$potential_title = implode ( \' - \', array_slice($matches[0], 0, 2));
如果我们有什么。。。

if( ! empty ( $potential_title ) ) {
从剩余内容中删除任何HTML

    $cleaner_title = strip_tags( $potential_title );
准备帖子标题更新

    $my_post_updates = array(
        \'ID\'           => $post_id,
        \'post_title\'   => $cleaner_title, 
    );

    // Update the post into the database

    wp_update_post( $my_post_updates );
}

JS VERSION

Javascript版本与此类似,您只需截取表单提交,获取内容,解析结果,然后传递数据。

这只是提醒解析测试内容的结果

// test content    
var content = "<h2>This is H2 Content</h2><p>This is PPP content</p>Random Content<h2>This is another H2 section</h2><b><h2>This the third H2 section</h2></b>";

// variables to store regEx results. 
var match, regex = /<h2>(.*?)<\\/h2>/ig, matches = [];

// get all the matches and put in array
while (match = regex.exec(content)) { matches.push( match[1] ); }

// if we have any...
if( matches.length ) {

   // pull the first 2 and join them together
   var title = matches.slice ( 0, 2 ).join ( \' - \' );

   // send this along with your form submission
   alert(title);
}

相关推荐

无法在WordPress中通过PHP显示图像

我有一个奇怪的问题,当我尝试使用PHP输入图像标记的源代码时,它会在检查器中显示以下错误<img src=(unknown) alt=\"\"> 这个代码片段为我提供了正确的url,通过查看CPanel并粘贴和复制地址进行检查,但当我尝试通过php输入它时,不会显示图像$image = wp_get_attachment_image_src( $post_thumbnail_id); //echo($image[0]); ?> <img src=