लौटते हैं जब मैं अपने कस्टम पोस्ट प्रकार "काम" सूची में एक पेजिनेशन लिंक पर क्लिक करता हूं (या "mysite.com/works/page/2" जैसे यूआरएल दर्ज करता हूं), मुझे मिलता है 404 पेज।वर्डप्रेस कस्टम पोस्ट प्रकार पेजिनेशन लिंक 404
नियमित पोस्ट प्रकार पेजिनेशन (ब्लॉग) सही तरीके से काम करता है। इसके अलावा, मेरे कस्टम पोस्ट प्रकार "काम करता है" के बारे में सबकुछ ठीक काम करता प्रतीत होता है।
मेरे टेम्पलेट works.php फ़ाइल इस है:
get_home_pagination();
$args = array('post_type' => 'works', 'posts_per_page' => 10, 'paged' => $paged); $wp_query = new WP_Query($args);
if ($wp_query->have_posts()) :
while ($wp_query->have_posts()) : $wp_query->the_post(); get_template_part('loop', 'works'); endwhile;
else : _e('Nothing here.'); endif;
एक ही कोड (बेशक, के बाद प्रकार की जगह) टेम्पलेट blog.php, जहां पृष्ठांकन लिंक सही ढंग से काम में प्रयोग किया जाता है।
और फिर functions.php में मुझे मिल गया है:
function get_home_pagination() {
global $paged, $wp_query, $wp; $args = wp_parse_args($wp->matched_query);
if (!empty ($args['paged']) && 0 == $paged) {
$wp_query->set('paged', $args['paged']); $paged = $args['paged'];
} }
एक पल मैंने सोचा था कि क्योंकि वर्डप्रेस पाश के भीतर किसी भी पद नहीं पा सके हो रहा था के लिए: यह जब पोस्ट आईडी प्राप्त करने की कोशिश पोस्ट-टेम्पलेट.एफपी के लाइन 2 में कोई पोस्ट नहीं था। लेकिन फिर मुझे यह एहसास हुआ:
यदि मैं टाइप करता हूं, उदाहरण के लिए, यूआरएल "(...)/ब्लॉग/पेज/456", ब्लॉग टेम्पलेट "यहां कुछ भी नहीं" संदेश के साथ लोड होता है। कोई 404 त्रुटि पृष्ठ नहीं।
दूसरी तरफ, यूआरएल "काम/पृष्ठ/2", जिसे मैं कुछ पोस्ट वापस करने की उम्मीद करता हूं, 404 त्रुटि पृष्ठ पर समाप्त होता है।
क्यों?
संपादित करें:
404 पृष्ठ पर मैं भी इस त्रुटि मिलती है:
Trying to get property of non-object in (…)/wordpress/wp-includes/post-template.php on the line 29.
... लेकिन यह पृष्ठांकन समस्या से संबंधित नहीं हो सकता है। मैं उस कोड को हटाने में कामयाब रहा जो इस त्रुटि का कारण बनता है (एक प्लग-इन I से अनुकूलित) और पेजिनेशन अभी भी काम नहीं करता है।
संपादित करें:
यह है कि मैं क्या डीबग-इस प्लग-इन के साथ यूआरएल mysite.com/trabalhos/pagina/2 डिबगिंग द्वारा मिल गया है। यह बहुत गलत हो रहा है:
Obs: trabalhos = काम करता है, पेज = पेज
Matched Rule: trabalhos/([^/]+)(/[0-9]+)?/?$
Matched Query: works=pagina&page=%2F2
Query String: page=%2F2&name=pagina&post_type=works&works=pagina&debug-this=rewrites
मेरी समझ में, URL mysite.com/trabalhos/pagina/2 पर ले जाना चाहिए निम्न URL (सिवाय यह काम नहीं करता है - लेकिन अगर मैं 'Noticias' के साथ 'trabalhos' की जगह ले - 'ब्लॉग' के लिए मेरे स्लग - यह काम करता है):
mysite.com/trabalhos/pagina/2/?pagename=trabalhos
हालांकि, URL mysite।com/trabalhos/पेज/इस अजीब यूआरएल को 2 अंक:
mysite.com/trabalhos/pagina/2?page=%2F2&works=pagina&post_type=works&name=pagina
और आश्चर्यजनक रूप से, वास्तव में सामग्री मैं उम्मीद कर रहा था, कि, काम करता है के पेज 2 है के लिए निम्न URL अंक (trabalhos):
mysite.com/noticias/pagina/2/?pagename=trabalhos
मुझे समाधान के करीब होना प्रतीत होता है ... हालांकि मैंने सभी प्लग-इन को निष्क्रिय करने का प्रयास किया, लगभग सभी विषय php कोड को हटाकर, प्रत्येक बार व्यवस्थापक पैनल में परमालिंक सेटिंग्स को रीसेट करने के साथ-साथ अन्य चीजों के साथ, और त्रुटि बनी रहती है।
क्या यह कुछ गलत कॉन्फ़िगरेशन है? यह कहाँ होगा?
किसी भी मदद के लिए अग्रिम धन्यवाद!
एक बार फिर पर्मलिंक बटन को सहेज लें, इस समस्या को हल कर सकते हैं –
मेरा उत्तर देखें http://stackoverflow.com/questions/22364294/pagination-on-custom-wp-query-in-wordpress-takes-to-404 -error-page/22465969 # 22465969 –
मैंने क्वेरी को डीबग करने और पुनः लिखने के लिए प्लग-इन का उपयोग किया। मिलान पेजिंग लिंक के लिए मिलान की गई क्वेरी और क्वेरी स्ट्रिंग को अपरिवर्तनीय रूप से गड़बड़ कर दिया गया है, और मिलान वाला नियम गलत लगता है। मैं अभी कुछ समय से रहा हूं और इसे समझ नहीं सकता। एक टिप्पणी में रखने के लिए यह बहुत सारी जानकारी है। मैं अपनी पोस्ट संपादित कर सकता हूं लेकिन अनुमान लगा सकता हूं कि मैं बेहतर एक नया धागा शुरू कर सकता हूं ... – zok