【问题标题】:custom single page without wordpress database没有wordpress数据库的自定义单页
【发布时间】:2017-04-26 17:59:53
【问题描述】:

您好,我正在创建一个网站,我正在尝试创建一个页面,其中的数据来自与 WordPress Database 无关的不同数据库。

我创建了一个循环,其中显示了许多帖子,就像 WordPress 一样,但它不是来自 WordPress 帖子类型等。只是使用简单的 mysqli_query。现在对于那个循环,我想创建一个单页节目,我可以显示完整的详细信息,就像WordPress 帖子一样。

我创建这个虚拟 url 的例子:- http://example-website.com/handbuch-der-mechanischen-verfahrenstechnik/B009CCTW9M

现在“B009CCTW9M”是id,我将创建mysqli_query 来显示单个帖子。

但是当我到达那个 URL WordPress 时显示 404 Error 因为它在 WordPress Database 中不存在。

我认为需要通过mod_rewrite 来完成,但我不是这方面的专家,请帮我弄清楚。

抱歉,描述不清楚的朋友可能会对您有所帮助

我创建了一个mysqli_query 来显示一些数据,就像 WordPress 使用“while (have_posts()) : the_post();”一样

但不同的是我的数据不是来自 WordPress 数据库结构。所以对于我展示的数据,我需要创建一个页面。所以可以像 WordPress 单页一样显示它的全部细节。为此,我必须创建一些 url,但我不确定我是如何创建它的,所以 WordPress 不提供404 Error。在那个 url 上,我想要这个 id 'B009CCTW9M',所以我可以提取它并创建 mysqli_query

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 大声笑这就是我应该尝试实现的问题。但是我第一次尝试这个我注册帖子类型电子书然后我虽然我会打开这样的网址example-website.com/ebook/… 然后我将从 url 中提取 id 并将其用于查询但我认为这是非常愚蠢的想法因为 wordpress 显示 404该网址出错。
  • 你的q不是很清楚,db/loop跟url或者没有关系,你需要说明你是如何创建url的,如果是wp重写,保存永久链接或者是它是页面模板/页面等。如果您尝试点击页面上的特定 id,则需要 #B009CCTW9M 来点击页面上的命名锚点或 id
  • wordpress ajax 调用可用于获取单页中的详细信息。URL 无法重写。在上面的 url 中,WP 搜索 andbuch-der-mechanischen-verfahrenstechnik 作为父页面,B009CCTW9M 作为子页面 ...
  • 改为使用 wp_ajax 调用,将 B009CCTW9M 作为 ajax 调用中的 id 并通过您的正常查询获取记录..

标签: php wordpress mod-rewrite


【解决方案1】:

您好,很抱歉回答晚了,这是我的解决方案,希望对其他人有所帮助。

function userpage_rewrite_catch() {
global $wp_query;

if ( array_key_exists( 'ebooks_id', $wp_query->query_vars ) ) {
            include WP_PLUGIN_DIR .'/'. plugin_basename( dirname(__FILE__) ) .'/single-ebook.php';
exit;
}
}
add_action( 'template_redirect', 'userpage_rewrite_catch' );

function userpage_rewrite() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
add_action('init','userpage_rewrite');


function ebook_plugin_activate() {
  products_plugin_rules();
  flush_rewrite_rules();
 }

 function ebook_plugin_deactivate() {
  flush_rewrite_rules();
 }

 function ebook_plugin_rules() {
  //add_rewrite_rule('ebook/?([^/]*)', 'index.php?pagename=ebook&ebook_id=$matches[1]', 'top');
      add_rewrite_rule( 'ebooks/([^/]+)/([^/]*)/([^/]*)', 'index.php?ebooks=$matches[1]&ebook_cat=$matches[2]&ebooks_id=$matches[3]', 'top' );
 }

 function ebook_plugin_query_vars($vars) {
   $vars[] = 'ebooks';   
  $vars[] = 'ebook_cat';
  $vars[] = 'ebooks_id';
  return $vars;
 }

 //register activation function
 register_activation_hook(__FILE__, 'ebook_plugin_activate');
 //register deactivation function
 register_deactivation_hook(__FILE__, 'ebook_plugin_deactivate');
 //add rewrite rules in case another plugin flushes rules
 add_action('init', 'ebook_plugin_rules');
 //add plugin query vars (product_id) to wordpress
 add_filter('query_vars', 'ebook_plugin_query_vars');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-20
    • 2021-01-24
    • 2023-03-29
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    相关资源
    最近更新 更多