【问题标题】:How to query through page content and compare specific text with post titles in Wordpress?如何在 Wordpress 中查询页面内容并将特定文本与帖子标题进行比较?
【发布时间】:2016-08-31 14:55:05
【问题描述】:

如果一行文本与帖子标题匹配,我正在尝试用链接自动替换页面上的文本。 我有一个杂志网站,每期都有页面,上面有目录作为页面内容,我也有文章的帖子(有时他们可以为每期发表 1-2-3 篇文章)。我希望 Wordpress 通过问题页面上的 ToC 文本进行查询,并查看是否有任何标题(现在仅用
分隔的行)与帖子(文章)的标题匹配,如果是,则将标题替换为文章的链接. 有什么好的方法吗? 将不胜感激任何意见。

【问题讨论】:

  • 基本上,我正在寻找一种方法来逐行浏览帖子并将这些行与我拥有的帖子标题进行比较,然后替换帖子中与链接匹配的行匹配页面。是否可以从帖子内容数组中提取每一行(可能应该以某种方式标记行以让 WP 知道它是一行)。

标签: php wordpress


【解决方案1】:

我想你正在寻找这个。将下面的函数放在function.php中

<?php
        function my_function( $post_id ){                
            if ( ! wp_is_post_revision( $post_id ) ){

                // unhook this function so it doesn't loop infinitely
                remove_action('save_post', 'my_function');

                // update the post, which calls save_post again     
                $content_post = get_post($post_id);
                $arr = get_post_meta($post_id, 'link-array', false);
                foreach ($arr as $key => $value) {
                 $post_title_updated=str_replace( $key, $value, $content_post->post_title);
                $post_content_updated=str_replace($key, $value, $content_post->post_content);
                 }

                      $my_post = array(
                          'ID'           => $post_id,
                          'post_title'   => $post_title_updated,
                          'post_content' => $post_content_updated,
                      );

                    // Update the post into the database
                      wp_update_post( $my_post );

                // re-hook this function
                add_action('save_post', 'my_function');
            }
        }
        add_action('save_post', 'my_function');
        ?>

自定义字段操作检查链接Custom Fields

【讨论】:

  • 非常感谢。但看起来我每次都必须手动添加一个我想要替换的字符串,不是吗?我想让它动态工作。我错过了什么吗?
  • 维护字符串和链接数组以全局调用本地函数并替换thr数组
  • 对不起,我不明白...请您详细说明一下。
  • 我明白了,再次感谢。但我还是不明白 $arr=array("test"=>"#");将获取数据,除了手动?
  • 我为每个帖子添加了自定义字段(链接数组),所以现在您可以为每个帖子动态管理链接数组。查看博客链接了解更多信息。检查更新的答案
猜你喜欢
  • 1970-01-01
  • 2014-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 2013-04-11
  • 2011-11-17
  • 1970-01-01
相关资源
最近更新 更多