Постоянная ссылка для авторов цитат

Что у меня есть: сайт цитат с форматом: «Текст цитаты». -Quote Автор
См. Quotout.com для моего тестового сайта (мои извинения заранее за тестирование-ненормативную лексику).

Что мне нужно: нажимать «-Quote Author» следует запустить страницу всех цитат автором этой цитаты с URL: example.com/SteveStevenson, где Стив Стивенсон является автором цитаты.

Что я сделал: Создал пользовательскую таблицу wp_qauthor, привязанную к wp_posts по post_meta (qauthor_id).
Добавлен следующий код для functions.php:

add_filter('query_vars', 'add_my_var'); function add_my_var($public_query_vars) { $public_query_vars[] = 'qaid'; return $public_query_vars; } 

Создал ссылку на цитату Авторское имя как таковое:

 <a href="http://example.com?qaid=2">Steve Stevenson</a> 

Нажатие на эту ссылку в настоящее время загружает home.php, но мне нужно, чтобы он попал в index.php, где я добавил этот код:

 elseif (get_query_var('qaid')) { $qaid = get_query_var('qaid'); query_posts($query_string . "&meta_key=qauthor_id&meta_value=" . $qaid);} 

Вопросы:

  • Как сообщить WP для вызова index.php, когда я нажимаю example.com?qaid=2 href?
  • После нажатия ссылки выше, как мне получить желаемую красивую ссылку example.com/SteveStevenson?
    Большое спасибо!

Solutions Collecting From Web of "Постоянная ссылка для авторов цитат"

Создайте свой собственный таксономический quoteauthor , активируйте симпатичные постоянные ссылки, и вы получите хорошие URI автоматически. Эти URI не будут помещать имя автора прямо за корнем, но что-то вроде /qa/steve-stevenson/ должно быть достаточно хорошим.

Вот пример кода в качестве плагина, вы можете скачать его на GitHub

 <?php # -*- coding: utf-8 -*- /* Plugin Name: Custom Taxonomy Quote Author Plugin URI: https://gist.github.com/996608 Description: Creates a custom taxonomy <code>Quote Author</code> with an URI <code>/qa/author-name/</code> Version: 1.0 Required: 3.1 Author: Thomas Scholz Author URI: http://toscho.de License: GPL */ ! defined( 'ABSPATH' ) and exit; add_action( 'after_setup_theme', 'register_quote_author' ); register_activation_hook( __FILE__, 'qua_flush' ); register_deactivation_hook( __FILE__, 'qua_flush' ); /** * Registers the taxonomy 'Quote Author'. * * To list the authors with links in your theme use * @link http://codex.wordpress.org/Function_Reference/get_the_term_list * <code>print get_the_term_list( get_the_ID(), 'quoteauthor' );</code> * * @link http://codex.wordpress.org/Function_Reference/register_taxonomy * @return void */ function register_quote_author() { register_taxonomy( // Internal name 'quoteauthor' // Post types the taxonomy applies to. // The attachment field is not very nice, just a simple input field. // You may tweak that. , array ( 'post', 'attachment' ) // Visible labels , array ( 'labels' => array ( 'name' => 'Quote Authors' , 'menu_name' => 'Quote Authors' , 'singular_name' => 'Quote Author' , 'search_items' => 'Search Quote Authors' , 'popular_items' => 'Popular Quote Authors' , 'all_items' => 'All Quote Authors' , 'edit_item' => 'Edit Quote Author' , 'update_item' => 'Update Quote Author' , 'add_new_item' => 'Add Quote Author' , 'new_item_name' => 'New name for Quote Author' , 'separate_items_with_commas' => 'Separate Quote Authors by comma' , 'add_or_remove_items' => 'Add or remove Quote Authors' , 'choose_from_most_used' => 'Choose from most quoted authors' ) // Most important parameter. :) , 'public' => TRUE // Available in custom menus. , 'show_in_nav_menus' => TRUE // Standard box. , 'show_ui' => TRUE // Clickable list of popular authors. , 'show_tagcloud' => TRUE // URI , 'rewrite' => array ( 'slug' => 'qa' ) // If you want to use WP_Query. , 'query_var' => 'qa' ) ); } /** * Tells WordPress to rebuild the rewrite rules to include our custom URIS. * * @return void */ function qua_flush() { // The current instance of the class WP_Rewrite. global $wp_rewrite; $wp_rewrite->flush_rules(); } 

Q: Как сообщить WP для вызова index.php, когда я нажимаю example.zom? Qaid = 2 href?
A: Хорошо, если вы говорите о файле шаблона так долго, как нет шаблона в вашей теме для author.php, вы должны быть в порядке. Или, пока нет шаблонов для вмешательства в загрузку index.php, он должен загрузить его по умолчанию

В: После нажатия ссылки выше, как мне получить желаемую красивую ссылку example.com/SteveStevenson? Большое спасибо!
A: Это можно найти на вкладке настроек в вашем back-end под permalinks и до тех пор, пока ваш сервер разрешает mod_rewrite, и вы вставили файл .htaccess, который должен работать автоматически